我正试图在工作中通过代理使用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下不要忘记设置

SET HTTPS_PROXY=<proxyHost>:<proxyPort>

我需要设置什么

pip install pep8

其他回答

在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

对于windows;在命令提示符中将代理设置为 设置HTTP_PROXY =域\用户名:password@myproxy: myproxyport

例如:set http_proxy=IND\namit.kewat:xl123456@192.168.180.150:8880

在当地做怎么样?大多数情况下,您可以通过浏览器从https源下载

下载模块文件(mysql-connector-python-2.0.3.zip /gz… 等等)。 提取它并进入setup.py所在的已提取目录 和电话: C:\mysql-connector-python-2.0.3>python.exe setup.py install

在带有身份验证的工作代理后使用pip,请注意,在使用用户和密码指定代理url时,某些操作系统需要引号:

pip install <module> --proxy 'http://<proxy_user>:<proxy_password>@<proxy_ip>:<proxy_port>'

文档:https://pip.pypa.io/en/stable/user_guide/使用代理服务器

例子:

pip3 install -r requirements.txt --proxy 'http://user:password@192.168.0.1:1234'

例子:

pip install flask --proxy 'http://user:password@192.168.0.1:1234'

代理也可以在pip.ini中手动配置。 例子:

[global]
proxy = http://user:password@192.168.0.1:1234 

文档:https://pip.pypa.io/en/stable/user_guide/配置文件

要为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为我解决了这个问题。更多细节请参考我的文章。