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的新版本在用户目录
所以要做的只是编辑内容,如下所示:
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)没有达到预期的效果。使用
我必须设置前面提到的环境变量,以便从代理后面获得连接。
我在命令提示符下完成了以下操作:
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:代理端口
对我而言令人震惊的是以下
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 |