如何修复windows上python的getaddrinfo故障
如果在命令提示符终端中启动python并尝试打开某个url,我会得到以下结果,尽管名称可以通过DNS解析:如何修复windows上python的getaddrinfo故障,python,windows,getaddrinfo,Python,Windows,Getaddrinfo,如果在命令提示符终端中启动python并尝试打开某个url,我会得到以下结果,尽管名称可以通过DNS解析: C:\Windows\system32>nslookup www.google.de Nicht-autorisierende Antwort: Name: www-cctld.l.google.com Address: 173.194.69.94 Aliases: www.google.de C:\Windows\system32>C:\Python27\pytho
C:\Windows\system32>nslookup www.google.de
Nicht-autorisierende Antwort:
Name: www-cctld.l.google.com
Address: 173.194.69.94
Aliases: www.google.de
C:\Windows\system32>C:\Python27\python.exe
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib
>>> urllib.urlopen("http://www.google.de")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\urllib.py", line 84, in urlopen
return opener.open(url)
File "C:\Python27\lib\urllib.py", line 205, in open
return getattr(self, name)(url)
File "C:\Python27\lib\urllib.py", line 342, in open_http
h.endheaders(data)
File "C:\Python27\lib\httplib.py", line 951, in endheaders
self._send_output(message_body)
File "C:\Python27\lib\httplib.py", line 811, in _send_output
self.send(msg)
File "C:\Python27\lib\httplib.py", line 773, in send
self.connect()
File "C:\Python27\lib\httplib.py", line 754, in connect
self.timeout, self.source_address)
File "C:\Python27\lib\socket.py", line 553, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
IOError: [Errno socket error] [Errno 11001] getaddrinfo failed
>>>
C:\Windows\system32>nslookup www.google.de
白藜芦:
名称:www-cctld.l.google.com
地址:173.194.69.94
别名:www.google.de
C:\Windows\system32>C:\Python27\python.exe
win32上的Python 2.7.2(默认值,2011年6月12日,15:08:59)[MSC v.1500 32位(英特尔)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入URL库
>>>urllib.urlopen(“http://www.google.de")
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“C:\Python27\lib\urllib.py”,第84行,在urlopen中
返回opener.open(url)
文件“C:\Python27\lib\urllib.py”,第205行,打开
返回getattr(self,name)(url)
文件“C:\Python27\lib\urllib.py”,第342行,在OpenHTTP中
h、 端头(数据)
文件“C:\Python27\lib\httplib.py”,第951行,在endheaders中
自发送输出(消息体)
文件“C:\Python27\lib\httplib.py”,第811行,在发送输出中
self.send(msg)
文件“C:\Python27\lib\httplib.py”,第773行,在send中
self.connect()
文件“C:\Python27\lib\httplib.py”,第754行,在connect中
self.timeout,self.source\u地址)
文件“C:\Python27\lib\socket.py”,第553行,位于create\u connection中
对于getaddrinfo(主机、端口、0、SOCK_流)中的res:
IOError:[Errno套接字错误][Errno 11001]getaddrinfo失败
>>>
我禁用了防火墙,以管理员身份启动了命令提示符,但这几乎是我所能想到的。nslookup工作正常,所以我看不出有什么问题。
有什么建议吗?显然,在Internet Explorer连接设置中,定义了一个无法访问的代理,无论出于何种原因,urllib都会考虑此设置,从而导致错误。值得注意的是,对于那些不习惯Microsoft方式的人来说,Internet Explorer设置也会影响其他程序。代理设置(至少在Windows Server 2012中)隐藏在Internet Explorer下→ ⚙ → 工具→ 互联网选项→ 连接→ 局域网设置。(在你们中的任何一位应用程序负责人开始欢呼之前,至少这些步骤都标有字符,而不是在Mac世界中显然有意义的漂亮彩色旋钮。)