我正试图在工作中通过代理使用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的那些?


当前回答

Windows 7系统:

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

例如:

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

其他回答

如果你使用的是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是端口

打开Windows命令提示符。

设置代理环境变量。

set http_proxy=http://user:password@proxy_ip:port
set https_proxy=https://user:password@proxy_ip:port

在相同的Windows命令提示符中使用代理安装Python包。

pip install --proxy="user:password@proxy_ip:port" package_name

我也遇到了同样的问题:在一个带有认证的公司代理的背后,我无法进行pip工作,以及Sublime Text 2(好吧,它可以自定义设置我的代理设置)。 对于pip(我将在git上尝试),我解决了安装cntlm代理。 配置起来非常简单:

编辑cntlm.ini 编辑“用户名”、“域”、“密码”字段 添加一个“代理”行,使用您的代理设置:服务器:端口 确保行“NoProxy”集成了“localhost”(默认情况下就像这样) 注意默认端口:3128 保存,就是这样。

为了测试它的工作,只需启动一个新的命令行工具,并尝试:

pip install django --proxy=localhost:3128

这对我很管用。 希望这对你有所帮助。

安装PIP:

ex:PORT = 9090
ex:PROXY_SERVER = stackoverflow
USERNAME:your user id
PASSWORD: your password

sudo pip2 install PACKAGENAME——proxy https://USERNAME:PASSWORD@PROXY_SERVER:PORT/ for Python2.7

sudo pip3 install PACKAGENAME——proxy https://USERNAME:PASSWORD@PROXY_SERVER:PORT/ for Python3.5

例子:

sudo pip2 install pandas --proxy https://USERNAME:PASSWORD@PROXY_SERVER:PORT/

对于apt-get安装

sudo http_proxy=http://USERNAME:PASSWORD@PROXY_SERVER:PORT/ apt-get install PACKAGENAME

例子:

sudo http_proxy=http://USERNAME:YOURPASSWORD@PROXY_SERVER:PORT/ apt-get install tensorrt

sudo http_proxy=http://USERNAME:YOURPASSWORD@PROXY_SERVER:PORT/ apt-get update

要为windows设置CNTLM,请遵循本文。对于Ubuntu,请阅读我的博客文章。

编辑:

基本上,要在任何平台上使用CNTLM,在使用http://127.0.0.1:3128作为父代理的代理之前,需要设置您的用户名和散列密码。

编辑配置并添加重要信息,如域,用户名,密码和父代理。 生成哈希密码。 Windows cntlm -c cntlm.ini -H Ubuntu/Linux cntlm -v -H -c /etc/cntlm.conf 从配置中删除纯文本密码,并用生成的密码替换它们。

检查是否工作:

Windows cntlm –M http://www.google.com

Ubuntu/Linux sudo cntlm -M http://www.google.com/

有关更详细的说明,请参阅上面的链接。

更新:

为了完整起见,我最近能够在Windows中配置和使用CNTLM。我在PC版Kindle的同步过程中遇到了一个问题,因为我们的代理,安装和配置CNTLM for Windows为我解决了这个问题。更多细节请参考我的文章。