如何使Anaconda在HTTP代理(而非https)后面工作?

时间:2016-04-19 20:41:29

标签: python git proxy anaconda conda

我在Anaconda工作时遇到代理问题。

当我有以下环境变量时:

http_proxy: http://domain\username:password@corp.com:8080
https_proxy: https://domain\username:password@corp.com:8080

或只是

http_proxy: http://server\username:password@corp.com:8080

然后设置git works。但是Anaconda没有用。 我试图运行

conda update conda

我得到了:

Could not connect to https://repo.continuum.io/pkgs....
Could not connect to https://repo.continuum.io/pkgs....

Anaconda不能使用http吗?并需要一个https代理?因为我认为我的公司可能没有设置https代理服务器(我只看到他们使用http)。 或有时我得到错误:

File "c\Anaconda2\", line 340, in wait
    waiter.acquire()
KeyboardInterrupt
Could not connect to https://repo.continuum.io/pkgs....
Could not connect to https://repo.continuum.io/pkgs....

我使用的是Windows 7。

9 个答案:

答案 0 :(得分:29)

您需要在Windows用户区域中创建 .condarc 文件:

C:\Users\<username>\

该文件应包含:

channels:
- defaults

# Show channel URLs when displaying what is going to be downloaded and
# in 'conda list'. The default is False.
show_channel_urls: True
allow_other_channels: True

proxy_servers:
    http: http://proxy.yourorg.org:port
    https: http://proxy.yourorg.org:port


ssl_verify: False

答案 1 :(得分:3)

我继续在环境变量中添加HTTP_proxy和HTTPS代理。使用的格式为&#34; 用户名:密码@ proxy_name:port &#34;。然后我重新打开了Anaconda提示。输入&#34; 设置&#34;验证添加的变量是否存在于Anaconda环境中。现在您可以输入&#34; spyder &#34;在Ananconda提示中。这个设置对我有用。

最初我尝试使用代理参数设置&#34; .condarc文件并尝试&#34; conda update conda&#34;没有运气。

答案 2 :(得分:1)

上述修改.condarc的解决方案并不适用于我。 但是,我通过以https://user:pass@corp.com:8080格式更新高级系统设置中的环境变量来取得成功。

如果您的密码包含特殊字符,则需要按照维基百科上的百分比编码保留字符中的描述对其进行转义。 https://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters

答案 3 :(得分:1)

以下内容对我来说是永久设置Anaconda的代理人:

转到C:/ ProgramData / Anaconda3 / etc /

如果它还没有conda文件夹,请创建它。

如果还没有文件夹activate.d和deactive.d,请创建它们。

还要在两个文件夹中创建env_vars.bat。您的最终结构应类似于以下快照:

enter image description here

在activate.d的env_vars.bat中,粘贴以下内容(将其更改为您自己的代理):

result.get(someToDo)

在deactivate.d的env_vars.bat中,粘贴以下内容(将变量保留为空白):

set HTTP_PROXY=http://xx.xx.x.xx:xxxx/
set FTP_PROXY=http://xx.xx.x.xx:xxxx/
set HTTPS_PROXY=https://xx.xx.xxx.xx:xxxx/

关闭并重新打开Anaconda Prompt以激活更改。

答案 4 :(得分:1)

如果上述解决方案对您没有帮助,您可以尝试一下。

转到您的PC设置,然后进行代理。只需为您的PC全局提供代理设置。当我这样做时,它对我有用。

enter image description here

答案 5 :(得分:1)

another post中查看我的答案:

我习惯的最佳方式是使用condapip安装/更新命令立即设置代理环境变量。只需运行:

set HTTP_PROXY=http://username:password@proxy_url:port

例如,您的实际命令可能类似于

set HTTP_PROXY=http://yourname:your_password@proxy.your_company.com:8080

如果您的公司使用https代理,则也

set HTTPS_PROXY=https://username:password@proxy_url:port

一旦退出Anaconda提示符,此设置就会消失,因此会话后将不会保存您的用户名/密码。

我没有选择Anaconda documentation或其他来源中提到的其他方法,因为它们都需要将用户名/密码硬编码为

  • Windows环境变量(这也需要首次重新启动Anaconda提示符)
  • Conda .condarc.netrc配置文件(同样不适用于PIP)
  • 启动Anaconda提示符时加载的批处理/脚本文件(这可能还需要配置路径)

所有这些都不安全,以后需要不断更新。如果您忘记在哪里更新?更多故障排除将随您而来...

答案 6 :(得分:0)

使用证书yourcertname.pem为我工作: https://aafaqueabdullah.wordpress.com/2017/04/10/ssl-authentication/

答案 7 :(得分:0)

这个方法对我有用:

从目录./Anaconda3/Library/bin/复制文件libcrypto-1_1-x64.dlllibssl-1_1-x64.dll strong> 到 ./Anaconda3/DLLs.

希望它能回答你的问题

答案 8 :(得分:0)

经过大量的反复试验,我们终于在 .condarc 文件中使用以下语法(没有“http://”)(我们有两个这样的文件,一个在 Users 文件夹中,另一个在实际用户的文件夹)。

proxy_servers:
    http: proxyserver.org:portNumber
    https: proxyserver.org:portNumber

代理服务器必须对 anaconda.org 和 anaconda.com 进行例外处理。重要!