Pip不在防火墙后面工作

时间:2014-01-30 22:15:09

标签: python proxy pip

我正在尝试从公司防火墙后面使用pip,而没有任何运气。

我已设置http_proxyhttps_proxy个环境变量。 wget有效,但不是pip。

我试过了......

sudo -E pip install virtualenv

使用这些代理...

export http_proxy=myproxyname.mydomain.com:8080
export https_proxy=myproxyname.mydomain.com:8080 

...并获得了一个以此

结束的长堆栈跟踪
/requests/packages/urllib3/poolmanager.py", line 214, in __init__
'Not supported proxy scheme %s' % self.proxy.scheme
AssertionError: Not supported proxy scheme None

我查看了poolmanager.py源代码。看起来它需要代理变量以方案开头。所以我再次尝试使用以下代理...

export http_proxy=http://myproxyname.mydomain.com:8080
export https_proxy=https://myproxyname.mydomain.com:8080 (also tried this with http://)

...我收到以下错误

Downloading/unpacking virtualenv
  Cannot fetch index base URL https://pypi.python.org/simple/
  Could not find any downloads that satisfy the requirement virtualenv
Cleaning up...
No distributions at all found for virtualenv
Storing debug log for failure in /root/.pip/pip.log

这与我根本没有代理时得到的错误相同,但是当设置代理时我得到的速度要快得多。

当我尝试wget ...

wget --no-check-certificate https://pypi.python.org/simple/

它工作正常,所以我认为代理本身似乎没问题,除非我用pip尝试它们。

使用--proxy选项而不是envvars没有帮助。相同的结果。

有什么想法吗?

谢谢, 豆

7 个答案:

答案 0 :(得分:15)

使用--trusted-host参数。

我想出了如何使用--trusted-host参数让我在公司防火墙后面与我合作。

我的第一次尝试是:

pip install matplotlib

失败的文字就是这样:

  

无法获取网址https://pypi.python.org/simple/matplotlib/:那里   是证实ssl证书的问题:[SSL:   CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:645) -   跳过

然后我尝试了这个有用的工作:

pip3.5 install matplotlib --trusted-host pypi.python.org

答案 1 :(得分:7)

这对我有用

export HTTP_PROXY=http://myusr:mypswd@myproxyname.mydomain.com:8080
export HTTPS_PROXY=https://myusr:mypswd@myproxyname.mydomain.com:8080
sudo -E pip3 install --proxy http://myusr:mypswd@myproxyname.mydomain.com:8080 virtualenv

答案 2 :(得分:5)

我必须在Windows中设置所有这些才能使其正常工作。

set http_proxy=http://proxy.corp.com:8083
set https_proxy=http://proxy.corp.com:8083
set all_proxy=http://proxy.corp.com:8083
set no_proxy=localhost,.corp.com

set HTTP_PROXY=http://proxy.corp.com:8083
set HTTPS_PROXY=http://proxy.corp.com:8083
set ALL_PROXY=http://proxy.corp.com:8083
set NO_PROXY=localhost,.corp.com

set PATH=c:\python27\scripts;c:\python27\;%PATH%

请将 proxy.corp.com:8083 替换为您的http代理服务器。

之后我使用 pip install numpy

[Last" .corp.com"错过了一段时间(固定它)....顺便说一句,在我们公司防火墙后面发出很多头发之后,这个解决方案是唯一有效的解决方案!]

答案 3 :(得分:3)

pip可以选择设置代理,因此以下内容适用于您:

sudo -E pip install --proxy="myproxyname.mydomain.com:8080" virtualenv

答案 4 :(得分:0)

尝试添加" http://"在代理主机名之前:

sudo -E pip install --proxy="http://myproxyname.mydomain.com:8080" virtualenv

答案 5 :(得分:0)

这是在代理

背后工作

sudo -E pip --proxy username:password @ http://IP:port install

答案 6 :(得分:0)

在Windows上,转到“ Internet属性” --->“连接” --->“ LAN设置” 并检查地址(如果它是wpad.dat文件,请下载并查找“ ProxyPort”和“ ProxyServer”)。

然后尝试:

pip --proxy http://*user*:*password*@P*roxyServer*:*ProxyPort* install *module*