http://pypi.python.org/simple/PACKAGE 上的下载错误:[Errno -5] 没有与主机名关联的地址 - Python 库 HTTPLib 问题?

Download error on http://pypi.python.org/simple/PACKAGE: [Errno -5] No address associated with hostname - Python Library HTTPLib Issue?

我正在尝试通过 pip 下载一些包(目前是 google API)——但我收到了这样的回复:

pi@raspberrypi ~ $ sudo easy_install google-api-python-client
Searching for google-api-python-client
Best match: google-api-python-client 1.3.1
Processing google_api_python_client-1.3.1-py2.7.egg
google-api-python-client 1.3.1 is already the active version in easy-install.pth

Using /usr/local/lib/python2.7/dist-packages/google_api_python_client-1.3.1-py2.7.egg
Processing dependencies for google-api-python-client
Searching for uritemplate>=0.6
Reading http://pypi.python.org/simple/uritemplate/
Download error on http://pypi.python.org/simple/uritemplate/: [Errno -5] No address associated with hostname -- Some packages may not be found!
Reading http://pypi.python.org/simple/uritemplate/
Download error on http://pypi.python.org/simple/uritemplate/: [Errno -5] No address associated with hostname -- Some packages may not be found!
Couldn't find index page for 'uritemplate' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading http://pypi.python.org/simple/
Download error on http://pypi.python.org/simple/: [Errno -5] No address associated with hostname -- Some packages may not be found!
No local packages or download links found for uritemplate>=0.6
error: Could not find suitable distribution for Requirement.parse('uritemplate>=0.6')

现在,我想我应该在这里而不是在 RPi.SE 上提问,因为这似乎已经在这里被问过并回答过好几次了。现在,通常情况下,这将构成 not 再次询问 - 但这些解决方案均无济于事。

我看过

仅举几例。

其中一些解决方案提到了导致此错误的代理问题 - 但是,这不是我的问题,因为我没有代理并且我的 $http_proxy 为 null:

pi@raspberrypi ~ $ echo $http_proxy

pi@raspberrypi ~ $ 

提到的另一个问题是缺少正确的 SSL 版本,给出的解决方案是安装 pip 1.2.1...现在看起来有点过时了。我需要安装特定版本的 OpenSSL/pip 吗?

做了安装pip 1.2.1,我之前有1.1.1(来自Raspbian存储库的包)但是得到了同样的错误。

知道是什么原因造成的吗?

编辑:这是 HTTPLib 错误吗?

我认为这是在我的 Raspberry Pi 上安装 Python 的问题,因为我在使用 httplib python 图书馆。 httplib 库中的一个问题肯定可以解释这个问题。

请注意,curlwgetlynx 都可以正常工作。

我按照 this post on the Raspberry Pi Forums.

的方法解决了这个问题

我必须先编辑 /usr/lib/python2.7/socket.py 文件中的 create_connection() 函数以将主机名解析为 IP:

原码:

def create_connection(.....)

host, port = address
err = None
for res in getaddrinfo(host, port, 0, SOCK_STREAM):

编辑代码:

def create_connection(.....)

host, port = address
err = None
hostip = gethostbyname(host)
for res in getaddrinfo(hostip, port, 0, SOCK_STREAM):