我正试图在工作中通过代理使用pip。

这篇文章中的一个答案建议使用CNTLM。我安装和配置它根据这另一个帖子,但运行cntlm.exe -c cntlm.ini -I -M http://google.com给出错误连接到代理失败,退出。

我还尝试了pip install——proxy=user:pass@localhost:3128(默认的CNTLM端口),但会引发无法获取索引基础URL http://pypi.python.org/simple/。很明显代理出问题了。

有人知道如何更明确地检查CNTLM是否设置正确,或者是否有另一种方法完全绕过这个问题吗?我知道你也可以像这里描述的那样设置http_proxy环境变量,但我不确定要放入什么凭证。来自cntlm.ini的那些?


当前回答

在Ubuntu中,我不能让代理选项像宣传的那样工作-所以下面的命令不起作用:

sudo pip --proxy http://web-proxy.mydomain.com install somepackage

但是导出https_proxy环境变量(注意它是https_proxy而不是http_proxy)做到了这一点:

export https_proxy=http://web-proxy.mydomain.com

然后:

sudo -E pip install somepackage

其他回答

如果你使用的是Linux系统,以root用户:

env https_proxy=http://$web_proxy_ip:$web_proxy_port pip install something

当你使用env时,它会为pip install命令的当前执行导出变量https_proxy。

$web_proxy_ip是代理的主机名或IP $web_proxy_port是端口

在高级系统设置中设置环境变量。 在命令提示符中,它应该是这样的:

C:\Windows\ system32系统> % http_proxy %回响 http://username:passowrd@proxy:port C:\Windows\ system32系统> % https_proxy %回响 http://username:password@proxy:port

后来,简单地说 pip安装任何应该工作。

Windows 7系统:

pip install --proxy DOMAIN\user:password@proxyaddress:port package

例如:

pip install --proxy BR\neo:p4ssw0rd@myproxyrocks.com.br:8080 virtualenv

在Windows下不要忘记设置

SET HTTPS_PROXY=<proxyHost>:<proxyPort>

我需要设置什么

pip install pep8

在CentOS(实际上我认为所有的linux发行版都是类似的)上运行

env|grep http_proxy

and

env|grep https_proxy

检查这些命令的输出(它们应该包含您的代理地址)。

如果输出为空或有不正确的值,修改它们,例如:

export http_proxy=http://10.1.1.1:8080
export https_proxy=http://10.1.1.1:8080

现在尝试使用pip获取并安装一些包:

pip --proxy http://10.1.1.1:8080 install robotframework

事实上,我从来没有遇到过这样的案例。对于某些系统,您需要是根用户(sudo是不够的)。