我试图从公司防火墙后面使用pip,没有任何运气.
我已经设置http_proxy和https_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
这对我有用
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)
pip有一个设置代理的选项,因此以下内容应该适合您:
sudo -E pip install --proxy="myproxyname.mydomain.com:8080" virtualenv
Run Code Online (Sandbox Code Playgroud)
尝试在代理主机名前添加“http://”:
sudo -E pip install --proxy="http://myproxyname.mydomain.com:8080" virtualenv
我不得不在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"错过了一段时间(修复了它)....顺便说一下,在我们公司防火墙后面发出很多头发之后,这个解决方案是唯一有效的解决方案!]
| 归档时间: |
|
| 查看次数: |
40696 次 |
| 最近记录: |