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


当前回答

$ pip --proxy http://proxy-host:proxy-port install packagename

这对我来说很管用

其他回答

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

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

在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

手机作为移动热点/USB绑定

如果我很难通过公司代理找到方法,我会通过手机连接到网络(如果我有wifi,就用无线热点,如果没有USB),然后快速安装pip。

可能并不适用于所有的设置,但应该能让大多数人在紧要关头渡过难关。

警告,“pip search”命令有一些非常糟糕的东西。 搜索命令不使用代理设置,不管它是如何传递的。

我试图通过“搜索”命令来解决问题,并找到了关于该错误的详细解释:https://github.com/pypa/pip/issues/1104

我可以确认这个bug仍然存在于Debian 8上的pip 1.5.6, python 2.7.9。 “pip install”命令非常有用。

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

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