conda update CondaHTTPError:HTTP无

use*_*972 29 anaconda conda

在运行中途Conda Update --all,更新停滞不前.多个包已更新.现在,当我跑步conda update --all或者conda 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')],)",),),)
Run Code Online (Sandbox Code Playgroud)

我重复conda update conda了好几天,结果没有变化.我可以看到没有HTTP,但是conda info --a显示了频道网址.

(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
Run Code Online (Sandbox Code Playgroud)

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

Par*_*esi 45

我的原始答案被标记为重复,因为我用相同的答案回答了类似的问题,我不知道这是不允许的。我已将我的其他回复标记为重复。希望这能保持下去!

我几乎花了两天的时间来尝试我可以在 Internet 上找到的所有解决方案,但这是对我有用的方法。

所以,CondaHTTPError又名SSL module is not available错误是由libcrypto的缺失/错位引起的anaconda3/DLLs 文件夹文件:

Tl;博士

从下面的文件anaconda3\Library\bin 复制并将它们粘贴anaconda3/DLLs

-   libcrypto-1_1-x64.dll
-   libssl-1_1-x64.dll 
Run Code Online (Sandbox Code Playgroud)

详细回答

  1. 卸载您拥有的任何Python版本(例如 Python 3.7 或 Python 3.8)

    转到控制面板--> 程序和功能--> 选择 Python-->

卸载

  1. Anaconda卸载您可能拥有的任何Anaconda版本(例如 Anaconda 或 miniConda):

    转到控制面板-->程序和功能--> 选择Anaconda -->卸载

    对于 miniConda

    转到控制面板-->程序和功能--> 选择miniconda -->卸载

  2. 删除任何剩余的环境变量

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

    E.g.
    C:\Users\Bob \AppData\Local\Programs\Anaconda\...
    C:\Users\Bob \AppData\Local\Programs\miniconda\...
    
    Run Code Online (Sandbox Code Playgroud)

    湾 如果您没有看到任何与 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

  • 在全新安装 miniconda 后创建我的第一个环境时,TLDR 为我做到了,谢谢 (2认同)

小智 44

在命令行中使用以下代码:

conda config --set ssl_verify no
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这会让您面临一些非常严重的攻击. (9认同)
  • @BallpointBen @Bharatwaja 完成后如何逆转以避免攻击?只需下面的代码?```conda config --set ssl_verify yes``` (3认同)

小智 14

检查您是否位于具有HTTPS/SSL代理的公司防火墙后面.如果是这样,你可能需要更改行.condarcssl_verify: truessl_verify: false.

  • 这对我有用,更具体地说是命令:conda config --set ssl_verify false (6认同)
  • 如下面的其他答案所述,这使您容易受到严重攻击 (5认同)

emi*_*ina 7

尝试以管理员身份启动Anaconda Prompt(在启动前单击鼠标右键),并进行相同的命令。


pet*_*ich 6

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

\n\n

我是这样解决的:

\n\n
    \n
  1. 打开 Chrome,进入任意网站,单击 URL 左侧\n的锁定图标。单击下拉列表中的 \xc2\xabCertificate\xc2\xbb。在下一个\n窗口中,您会看到一堆证书。最上面的(又名顶行\n窗口)是根证书(例如,在我的情况下为Zscaler根CA,\n你的很可能是不同的)。
  2. \n
  3. 打开 Mac OS 钥匙串,单击 \xc2\xabCertificates\xc2\xbb 并从众多证书中选择您刚刚识别的根证书。将其导出到您选择的任何文件夹。
  4. \n
  5. 使用 openssl 转换此证书:openssl x509 -inform der -in /path/to/your/certificate.cer -out /path/to/converted/certificate.pem

  6. \n
  7. 要快速检查,请设置您的 shell 以确认证书:export REQUESTS_CA_BUNDLE=/path/to/converted/certificate.pem

  8. \n
  9. 要设置此永久打开您的 shell 配置文件(.bshrs 或例如 .zshrc)并添加此行:export REQUESTS_CA_BUNDLE=/path/to/converted/certificate.pem。现在退出终端/shell 并重新打开。再检查一遍。

  10. \n
\n\n

你应该已经设置好了,Conda 应该可以正常工作。

\n\n

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

\n

  • 你是我的英雄。这对我有用,但我能够导出到 pem 并跳过 openssl 步骤。 (3认同)
  • 这也是正确的解决方案,conda 依赖于“requests”,而这个环境变量_是_配置它的方式。 (2认同)

S G*_*ber 5

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


小智 1

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