我正试图在工作中通过代理使用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的那些?
我得到了错误:
chris@green:~$ sudo http_proxy=http://localhost:3128 pip install django==1.8.8
Downloading/unpacking django==1.8.8
Cannot fetch index base URL http://pypi.python.org/simple/
Could not find any downloads that satisfy the requirement django==1.8.8
No distributions at all found for django==1.8.8
Storing complete log in /home/chris/.pip/pip.log
(代理服务器的端口是ssh端口转发到localhost:3128)。
我必须同时设置http和https代理使其工作:
chris@green:~$ sudo http_proxy=http://localhost:3128 https_proxy=http://localhost:3128 pip install django==1.8.8
Downloading/unpacking django==1.8.8
Downloading Django-1.8.8.tar.gz (7.3Mb): 7.3Mb downloaded
Running setup.py egg_info for package django
warning: no previously-included files matching '__pycache__' found under directory '*'
warning: no previously-included files matching '*.py[co]' found under directory '*'
Installing collected packages: django
Running setup.py install for django
warning: no previously-included files matching '__pycache__' found under directory '*'
warning: no previously-included files matching '*.py[co]' found under directory '*'
changing mode of build/scripts-2.7/django-admin.py from 644 to 755
changing mode of /usr/local/bin/django-admin.py to 755
Installing django-admin script to /usr/local/bin
Successfully installed django
Cleaning up...
http://pypi.python.org/simple/重定向到https://pypi.python.org/simple,但pip的错误没有告诉你。
在带有身份验证的工作代理后使用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/配置文件