我既不能通过pip命令安装python包也不能从我的网络子网加入url http://pypi.python.org/但是当我连接到具有相同计算机但不同IP和子网的另一个网络时,我可以安装包并加入url 。 我收到错误消息“无法获取索引基本URL http://pypi.python.org/simple/” 当我做pip安装。 我认为这与知识产权禁令问题有关,因为它之前有效。 之前有没有人有这样的经历?
答案 0 :(得分:1)
解决方案?:
user@host:~$export HTTP_PROXY="$http_proxy"
简短回答:小写$ http_proxy需要大写$ HTTP_PROXY
答案很长: 我也得到了这个错误。检查netstat -ant并显示 “SYN SENT”到[pypi.python.org]端口80.但为什么?我的$ http_proxy服务器清楚地将其他流量发送到另一个IP和端口8080 ?!它是全局设置的,无论用户是root用户还是其他用户都无关紧要,因此sudo -E解决方案无法播放。
在pip版本1.0中未检查环境变量的区分大小写 - > 1.3.1 - 至少对os.environ.get()调用字符串HTTP_PROXY。这不是一个“错误”,但与使用小写或不区分大小写的其他已安装软件(如Google Chrome)相冲突。
如果netstat显示某些IP“not-your-proxies-IP”的端口80的流量,一种解决方案就是修改pip / download.py来查找小写的env var'http_proxy'。或者,确保在您的环境中设置了$ http_proxy和$ HTTP_PROXY。
这是我的测试:
user@host:~$ grep -R HTTP_PROXY /usr/local/lib/python2.7/dist-packages/pip/*
/usr/local/lib/python2.7/dist-packages/pip/download.py:
proxystr = os.environ.get('HTTP_PROXY', '')
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> proxystr = os.environ.get('HTTP_PROXY', '')
>>> proxystr
''
Now I change HTTP_PROXY to http_proxy and the same snippet of download.py returns the value of my proxy
>>> proxystr = os.environ.get('http_proxy', '')
>>> proxystr
'http://proxyserver.mydomain.com:8080/'