Conda 更新 CondaHTTPError: HTTP None

在运行 Conda Update --all的过程中,更新停止了。已经更新了多个包。现在,当我运行 conda update --allconda update conda时,我得到这样的响应:

(C:\Users\*****\AppData\Local\Continuum\Anaconda3) C:\Users\*****>conda update conda
Fetching package metadata ...


CondaHTTPError: HTTP None None for url <None>
Elapsed: None


An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
SSLError(SSLError(SSLError("bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')],)",),),)

我重复了多天的 conda update conda,结果没有变化。我可以看到没有 HTTP,但是 conda info --a显示通道 URL。

(C:\Users\*****\AppData\Local\Continuum\Anaconda3) C:\Users\*****>conda info -a
Current conda install:


platform : win-64
conda version : 4.3.13
conda is private : False
conda-env version : 4.3.13
conda-build version : 2.1.5
python version : 3.5.3.final.0
requests version : 2.13.0
root environment : C:\Users\*****\AppData\Local\Continuum\Anaconda3  (writable)
default environment : C:\Users\*****\AppData\Local\Continuum\Anaconda3
envs directories : C:\Users\*****\AppData\Local\Continuum\Anaconda3\envs
C:\Users\*****\AppData\Local\conda\conda\envs
C:\Users\*****\.conda\envs
package cache : C:\Users\*****\AppData\Local\Continuum\Anaconda3\pkgs
C:\Users\*****\AppData\Local\conda\conda\pkgs
channel URLs : https://conda.anaconda.org/anaconda-fusion/win-64
https://conda.anaconda.org/anaconda-fusion/noarch
https://repo.continuum.io/pkgs/free/win-64
https://repo.continuum.io/pkgs/free/noarch
https://repo.continuum.io/pkgs/r/win-64
https://repo.continuum.io/pkgs/r/noarch
https://repo.continuum.io/pkgs/pro/win-64
https://repo.continuum.io/pkgs/pro/noarch
https://repo.continuum.io/pkgs/msys2/win-64
https://repo.continuum.io/pkgs/msys2/noarch
config file : C:\Users\*****\.condarc
offline mode : False
user-agent : conda/4.3.13 requests/2.13.0 CPython/3.5.3 Windows/7 Windows/6.1.7601

如何让 conda update调用正确的 HTTP 地址?

186049 次浏览

您应该检查位于 Miniconda3/Anaconda3根目录中的 .condarc文件。应该有一行只有一个连字符。此行对应于 None通道。删除行为为我修复了问题。

尝试以管理员身份启动水蟒提示符(在启动之前点击鼠标右键) ,然后执行相同的命令。

键入“ conda config —— show”检查配置信息,并确保通道中的地址可以正常访问。

  • https://curl.haxx.se/ca/cacert.pem下载 cacert.pem,
  • 保存到 /this/is/cert/path
  • 打开 ~/.bashrc或任何 profile文件
  • 加上 export REQUESTS_CA_BUNDLE=/this/is/cert/path
  • 开启新的终端机
  • conda update conda

检查您是否位于拥有 HTTPS/SSL 代理的公司防火墙之后。如果是这样,您可能需要将 .condarc中的行从 ssl_verify: true更改为 ssl_verify: false

或者,正如 托马斯在注释中建议的那样,使用以下命令:

conda config --set ssl_verify false

在命令行中使用下面的代码:

conda config --set ssl_verify no

我也犯了同样的错误,我尝试了大多数方法,但没有一个奏效。我查了一下水蟒3的版本是4.2.0,我意识到它还处于测试阶段,这可能就是原因。

我通过卸载所有东西并安装最新版本(5.1.0)解决了这个问题。

对于上述类型的错误,你必须删除环境变量中的代理服务器。要做到这一点,请遵循以下步骤:-

打开环境变量窗口 = = > > > >

要进行本文中所示的许多编辑,首先需要打开 Environment Variables 窗口。本指南解释了如何打开此窗口,并向您展示了使用环境变量的基本知识: 简单的问题: 什么是 Windows 中的环境变量?

如果你想跳过阅读它,一个在所有 Windows 版本中都一样的方法是打开控制面板,进入“系统和安全-> 系统”在那里,单击或点击左侧的“高级系统设置”链接。“系统属性”窗口已打开。单击“环境变量”按钮。 enter image description here enter image description here

在这里你必须选择一个有代理,并删除,然后点击确定。 现在重新启动 Anaconda 提示符。 对我有用,我希望对你也有用。
祝你好运

详情请参阅 链接

请更新导航器的最新版本。

在导航器上单击界面右上角的更新按钮或 在终端类型上

$ conda update anaconda-navigator

在 conda update 命令中启用“ k”标志,

conda update anaconda-navigator -k

这将允许 conda 建立不安全的连接来下载软件包。当您位于代理服务器之后时,这尤其有用。

在阅读了太多绕圈子的帖子之后,我找到了一个简单的解决方案,至少对于我对这个问题的看法是这样的,这个方案也应该能够解释一些根本原因。

Using sudo of same command (see below)

Conda create-n tensorenviron

(输出如下) 解决环境问题: 完成

CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/r/osx-64/repodata.json.bz2>
Elapsed: -


An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.


If your current network has https://www.anaconda.com blocked, please file
a support request with your network engineering team.


SSLError(MaxRetryError('HTTPSConnectionPool(host=\'repo.anaconda.com\', port=443): Max retries exceeded with url: /pkgs/r/osx-64/repodata.json.bz2 (Caused by SSLError("Can\'t connect to HTTPS URL because the SSL module is not available."))'))

Sudo conda create-n tensorenviron

(输出如下) 密码: 解决环境问题: 完成

## Package Plan ##


environment location: /Users/damonw/anaconda3/envs/tensorenviron




Proceed ([y]/n)? y


Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use:
# > source activate tensorenviron
#
# To deactivate an active environment, use:
# > source deactivate
#

从这个站点安装最新的 OpenSSl: https://slproweb.com/products/Win32OpenSSL.html,当前最新版本是1.1.1。现在我可以成功地通过 pip 和 conda 安装软件包了。

尝试从(基础)环境中键入“ conda update conda”

我在 Mac OS X和 Miniconda 上遇到了同样的问题。经过几个小时的尝试,我发现我需要正确设置 Condas 环境,使用我公司提供的根证书,而不是 Conda 提供的通用环境。

我是这样解决的:

  1. 打开 Chrome 浏览器,进入任何网站,点击左边的锁定图标 点击下拉列表中的“证书” 窗口中可以看到一堆证书 是根证书(例如在我的例子中是 Zscaler Root CA, 你的很可能是另外一个)。
  2. 打开 Mac 操作系统的密钥链,点击“证书”,然后在众多证书中选择你刚刚确定的根证书。将此文件导出到您选择的任何文件夹。
  3. 使用 openssl: openssl x509 -inform der -in /path/to/your/certificate.cer -out /path/to/converted/certificate.pem转换此证书

  4. 为了快速检查,请将您的 shell 设置为确认证书: export REQUESTS_CA_BUNDLE=/path/to/converted/certificate.pem

  5. 若要设置此值,请永久打开您的 shell 配置文件(。或例如。) ,并添加这一行: export REQUESTS_CA_BUNDLE=/path/to/converted/certificate.pem。现在退出终端/shell 并重新打开。再查一遍。

你应该准备好了,康达也应该没事了。

附注: 我知道 OP 在 Windows 上工作。尽管如此,我还是把这个解决方案留在这里,因为我认为它可以帮助解决潜在的根本原因。

我正在使用 python3.7.4,我刚刚下载了 conda 并尝试设置 tensorflow,但是得到了 http 错误。 我尝试了上面提到的几个步骤,但它不能解决我的问题。 我首先激活了 Conda 解决了这个问题。如果您第一次使用 conda,您需要使用 Conda init命令激活它,然后禁用 SSL 验证 Conda config —— set ssl _ validfalse 经过以上步骤,我的 tfp 设置工作完美! ! !

我原来的答案被标记为重复,因为我用相同的答案回答了一个类似的问题,我不知道这是不允许的。我已经将我的另一个回复标记为重复的。希望能保持住!

我几乎花了两天的时间在网上兜圈子,试图找到所有我能找到的解决方案,但是下面的方法对我很有效。

因此,CondaHTTPError又名 SSL module is not available错误是由于 anaconda3/DLL 文件夹中的 Libcrypto文件丢失/错位造成的:

Tl; dr :

anaconda3\Library\bin 收到下面的文件和 浆糊他们在 anaconda3/DLLs:

-   libcrypto-1_1-x64.dll
-   libssl-1_1-x64.dll

详细回答 :

  1. 卸载 任何 巨蟒版本(例如 Python 3.7或 Python 3.8)

    进入控制面板—— > 程序和特性—— > 选择 Python —— >

卸载

  1. 卸载 您可能拥有的任何 水蟒版本(例如,Anaconda 或 miniConda) 对于水蟒来说:

    转到 控制面板-> 程序和特性-> 选择 水蟒-> 卸载

    迷你康达

    转到 控制面板-> 程序和特性-> 选择 Miniconda-> 卸载

  2. 删除 any < strong > 剩余的环境变量

    转到 控制面板—— > 系统—— > 高级系统设置(在左侧)—— > 在 系统属性中单击 环境变数按钮—— > 在 用户变量中选择 路径并单击 剪辑按钮—— > 删除任何与 Anaconda、 miniConda 或 Python 相关的路径。

    E.g.
    C:\Users\Bob \AppData\Local\Programs\Anaconda\...
    C:\Users\Bob \AppData\Local\Programs\miniconda\...
    

    如果您没有看到任何与 Anaconda、 miniConda 或 Python 相关的路径,那么您可以继续前进。

  3. 重新启动您的机器

  4. 下载 Anaconda 的最新版本

  5. 运行 安装人员; 保留所有默认设置

  6. 转到你的 anaconda3/library/bin文件夹:

    例如 C:\Users\Bob\AppData\Local\Continuum\anaconda3\Library\bin

  7. 复制 这些 文件:

    libcrypto-1_1-x64.dll

    libssl-1_1-x64.dll

  8. 粘贴 这些 anaconda3/DLLs文件夹中:

  9. 使用任何需要 Internet 连接的命令重新打开 蟒蛇提示和测试。 例如。 conda update conda 或者和 conda update --all

Anaconda3提供的 DLL 位于这里: D: Anaconda3图书馆垃圾箱

我的解决办法: 我复制了以下文件

Libcrypto-1 _ 1-x64. * Libssl-1 _ 1-x64. * 从 D: Anaconda3库仓到 D: Anaconda3 DLL。

而且很有效!

我也面临同样的问题,并手动遵循这些步骤来达到预期的结果。 你可以输入-> https://repo.anaconda.com/pkgs/main/win-64/ 你可以安装任何你想要的软件包,以后: 您可以写信给蟒蛇提示符—— >

conda install C:\Users\xxxx\Downloads\xlrd-1.2.0-py37_0.tar.bz2

祝你好运!

我通过改变代理解决了这个问题。 改变

https_proxy=https://xxx.xxx

https_proxy=http://xxx.xxx

搞定它。

为了防止其他人被公司的代理卡住,以前的答案不起作用,那么试试 更改代理服务器。有趣的是,我已经在环境变量中设置了代理,但是由于某种原因,删除它们然后重新创建它们对我来说很有用。

在我的例子中,阻止安装的是一个代理服务器设置。关闭代理服务器,然后连接到另一个 WiFi 让它为我工作!

想尽办法解决这个问题,浪费了几个小时的时间。

Reset Windows 10 firewall
downgraded/upgraded pip
downgraded/upgraded conda
tried new environments
installed pip from pypi (get-pip.py)
upgraded Debian on Windows environment

没有什么可以修复它。然后注意到其他的康达环境工作得很完美。 问题在于,如果您重新安装了一个以前使用过的名称的环境,并在其间对 conda/发行版进行了某种升级,那么 pip 缓存就会出现错误。在 linux 下,我运行以下命令来修复这个问题:

rm -rf $HOME/.cache

看起来有一个类似的设置为 Windows 的基础上,你给了上面的信息。

只需要添加二进制文件到您的路径,并完成-它将照顾您的 openssl 和一切。

C:\Users\{username}\Miniconda3\Library\bin

在用户和系统变量中搜索环境变量。在 Path 中添加 bin 位置。把路放在尽头,不要改变任何东西。保存 Apply 并重新打开终端。现在它应该允许您轻松地安装库。

enter image description here