如何在anaconda中解决CondaHTTPError?

时间:2017-05-10 08:18:49

标签: python

我使用的是Windows 10专业版(x64),我刚刚安装了Anaonda 4.3.1

但是每当我尝试安装软件包或更新conda时,它都会显示如下错误。

(d:\Miniconda3) C:\Windows\system32>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.
SSLError(SSLError(SSLError("bad handshake: Error([('SSL routines', 'ssl3_read_bytes', 'sslv3 alert bad record mac')],)",),),)

conda config --set ssl_verify False 也没有任何区别。

使用pip安装软件包没问题。

1 个答案:

答案 0 :(得分:1)

来自这种抽象(即具有高级抽象)工具的这些错误通常很难从工具本身调试(它需要在工具的代码中进行大量挖掘以找出并最终找到问题) ;在绝大多数情况下,一旦你调试它,你就能够充分了解有问题的工具,以便能够编写一个补丁来解决这个问题。

我建议首先跟踪conda如何获取它首先获得的元数据(输出的第一行)。在UNIX上我建议使用tcpdump,但在Windows上我会使用wireshark(尽管根据the wikipedia page for tcpdump,它也适用于Windows)。

一旦你知道应该从哪个主机获取包,你就可以尝试理解它发生的原因。即bad record mac error should not occur under normal conditions;即你有网络问题(尝试使用其他网络)或有服务器(如果conda曾经工作过很可能)或客户端问题。

要在知道主机后尝试调试SSL问题,请运行:

openssl s_client -connect $host:443 -msg -debug

$host是您使用tcpdump / wireshark找到的主机。

祝你好运!

注意:我没有在这个答案中链接wireshark.org,而是使用wireshark的维基百科页面来阻止支持虚假安全做法 12 。请不要编辑该链接。