如何使用Anaconda python启用代理服务器?

How to enable proxy servers with anaconda python?

我们正在尝试通过代理服务器将conda安装(在Windows 8上)安装在防火墙后面。当前,我们可以在公司网络上通过pip在命令提示符下使用pip安装软件包:

1
pip install pandas --proxy=http://abc.def.xyz.com:1234

无需指定密码,只需指定代理服务器和端口即可。 conda文档指出代理服务器是可能的:

1
2
3
4
# Proxy settings: http://[username]:[password]@[server]:[port]
proxy_servers:
    http: http://user:pass@corp.com:8080
    https: https://user:pass@corp.com:8080

我尝试了各种组合,以查看是否可以使用我的用户名和密码。

1
2
3
# formats tried:
http: http://user:pass@abc.def.xyz.com:1234
http: http://abc.def.xyz.com:1234

我似乎无法使其正常工作。尝试了多种不同的引用方式组合(密码具有特殊字符)。也尝试使用和不使用域用户。

我可以看到,conda正在使用urlib3(而pip可能正在使用urlib代理处理程序?)。请注意,通常不赞成在文件中输入用户名和密码。

我知道我们可以设置自己的http或文件位置通道,并将所有程序包放在此处,然后将该通道添加到.condarc配置设置中。但是,我希望不必在本地管理软件包和版本的存储库。

所以....有没有一种方法可以在.condarc文件中指定代理服务器和端口(没有用户名和密码),以便像在命令行上的pip install一样在防火墙后进行conda安装?甚至像pip这样的内联电话都可以正常工作……

1
conda install pandas --proxy=abc.def.xyz.com:1234

提前致谢...

PS:我真的很喜欢conda。上周末,我在家用PC上设置了许多虚拟环境。文档很棒,一切都完美无缺。总体而言,比点子要好得多……如果我们只能让它在公司内部运作:)


好吧,这很尴尬,但好消息。我通过再次尝试更改condarc文件解决了我的问题。

1
https: https://abc.def.xyz.com:1234

我猜pip可以正常使用http,而conda的地址都是https站点:

1
https://repo.continuum.io/pkgs/free/win-64/

我早该抓到的!

好吧,我现在很高兴我们有一个解决方案,可以在防火墙后使用conda而不需要用户和密码。太棒了!


答案较晚,但可能其他人也可以从中受益。

创建一个.condarc文件contaninig:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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://172.**.*.***:8080
    https: https://172.**.*.***:8080


ssl_verify: False

使用您自己的代理设置更改IP地址。

将此文件放在用户的主文件夹中(对我来说:C: Users bakayim)

重新启动anaconda提示


打开Anaconda命令并执行以下命令:

1
2
3
set HTTP_PROXY=http://username:password@proxyurl.com:8080

set HTTPS_PROXY=https://username:password@proxyurl.com:8443

Anaconda的新版本在用户目录C:\Users\User_name\.condarc中带有.condar文件。

所以要做的只是编辑内容,如下所示:

1
2
3
4
5
6
7
8
9
10
11
channels:
  - defaults

show_channel_urls: True
allow_other_channels: True

proxy_servers:
    http: http://172.**.*.***:8080
    https: https://172.**.*.***:8080

ssl_verify: true

那对我有用。


我可以确认.condarc在我的情况下(Windows 7)没有达到预期的效果。使用conda info,我可以验证它是否已加载,但没有任何作用。

我必须设置前面提到的环境变量,以便从代理后面获得连接。

我在命令提示符下完成了以下操作:

1
2
set http_proxy=[protocol:your_proxy_address_here:port]
set https_proxy=[protocol:your_proxy_address_here:port]

卸下支架。要验证(列出)并发设置,只需键入:set


我还设置了2个Windows环境变量:(不知道是否有必要)

1
Name: http_proxy

变量:http:// username:password @ Proxyadresse:Proxyport

1
Name: https_proxy

变量:https://用户名:密码@Proxyadresse:代理端口


对我而言令人震惊的是以下.condarc文件

1
2
3
4
5
6
7
8
9
channels:
  - r
  - defaults

proxy_servers:
  http: http://username:password@Proxyadresse:Proxyport
  https: https://username:password@Proxyadresse:Proxyport

ssl_verify: true