我正试图在工作中通过代理使用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设置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为我解决了这个问题。更多细节请参考我的文章。
windows 2022年:
我知道有很多答案,几乎所有其他关于pip和代理的问题都指向这个问题:
所以在我看来,一方面是代理的问题,这在下面的问题中得到了回答。
PIP install——proxy=https://<windowsuser>:<pw>@<proxy>:端口包
在此之后,您必须处理SSL证书。您必须添加可信源。通常它们会出现在错误消息中。例如:ERROR: ....下面是我安装Django的解决方案:
pip install Django——proxy http://windowsuser:password@proxy:port——truste- host pypi.python.org——truste- host pypi.org——truste- host files.pythonhosted.org