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


当前回答

我用“Fiddler”(https://www.telerik.com/download/fiddler)解决了Windows中的PIP问题。下载安装完成后,请执行以下操作:

“规则”=>点击“自动认证”

例如:pip install virtualenv -proxy 127.0.0.1:8888

只需打开提示符并使用即可。

https://github.com/pypa/pip/issues/1182搜索“voltagex”(2015年5月22日评论)

其他回答

一个更简单的方法可能是:

在$HOME目录中创建一个名为“pip”的文件夹。 在该目录下创建一个名为“pip.ini”(Windows)或“pip.conf”(Linux)的文件 在步骤1中创建 在pip.ini/pip.conf文件下复制并粘贴以下代码行: (全球) trusted.host = pypi.python.org pypi.org files.pythonhosted.org

这是对我有效的方法:

pip --proxy proxy url:port command package

根据我们的安全策略,我可能不会在pypi上使用https, SSL-inspection重写证书,它破坏了pip www.python.org的内置安全性。在中间的人是网络管理员。

我需要使用纯http。要做到这一点,我需要覆盖系统代理以及默认的pypi:

bin/pip install --proxy=squidproxy:3128 -i http://www.python.org/pypi --upgrade "SQLAlchemy>=0.7.10"

如果你想通过代理升级pip,可以使用(例如在Windows中):

python -m pip --proxy http://proxy_user:proxy_password@proxy_hostname:proxy_port insta
ll --upgrade pip

我得到了错误:

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的错误没有告诉你。