Pip不在防火墙后面工作

Bea*_*axi 20 python proxy pip

我试图从公司防火墙后面使用pip,没有任何运气.

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

我试过这个......

sudo -E pip install virtualenv
Run Code Online (Sandbox Code Playgroud)

用这些代理......

export http_proxy=myproxyname.mydomain.com:8080
export https_proxy=myproxyname.mydomain.com:8080 
Run Code Online (Sandbox Code Playgroud)

...并获得了一个很长的堆栈跟踪,以此结束

/requests/packages/urllib3/poolmanager.py", line 214, in __init__
'Not supported proxy scheme %s' % self.proxy.scheme
AssertionError: Not supported proxy scheme None
Run Code Online (Sandbox Code Playgroud)

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

export http_proxy=http://myproxyname.mydomain.com:8080
export https_proxy=https://myproxyname.mydomain.com:8080 (also tried this with http://)
Run Code Online (Sandbox Code Playgroud)

......我收到以下错误

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
Run Code Online (Sandbox Code Playgroud)

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

当我尝试wget ...

wget --no-check-certificate https://pypi.python.org/simple/
Run Code Online (Sandbox Code Playgroud)

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

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

有任何想法吗?

谢谢,Bean

小智 16

使用--trusted-host参数.

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

我的第一次尝试是这样的:

pip install matplotlib
Run Code Online (Sandbox Code Playgroud)

失败的文字是这样的:

无法获取URL https://pypi.python.org/simple/matplotlib/:确认ssl证书时出现问题:[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:645) - 跳过

那么我尝试了这个工作:

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


Jor*_*ram 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
Run Code Online (Sandbox Code Playgroud)


Odi*_*Odi 5

pip有一个设置代理的选项,因此以下内容应该适合您:

sudo -E pip install --proxy="myproxyname.mydomain.com:8080" virtualenv
Run Code Online (Sandbox Code Playgroud)

  • 谢谢...不幸的是这也不起作用。它给出的结果与设置环境变量相同,包括如果我不使用 http 启动代理,则会出现“无方案”问题。我将编辑问题以表明我尝试过此操作。 (2认同)

Rob*_*rto 5

尝试在代理主机名前添加“http://”:

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


Dam*_*ian 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%
Run Code Online (Sandbox Code Playgroud)

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

之后我使用pip install numpy

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