如何在Windows上解决这个“NotImplementedError”urllib2 / gevent错误?

时间:2011-03-12 20:34:46

标签: python windows urllib2 ipv6 gevent

我正在尝试在Windows XP上使用gevent修补urllib2打开一个网址:

from gevent import monkey
monkey.patch_all()
import urllib2

opener = urllib2.build_opener()
request = urllib2.Request("http://www.google.com")
response = opener.open(request)

我在opener.open电话中收到此异常:

File "C:\Python26\lib\site-packages\gevent\socket.py", line 768, in getaddrinfo
  sockaddr = (inet_ntop(AF_INET6, res), port, 0, 0)
File "C:\Python26\lib\site-packages\gevent\socket.py", line 133, in inet_ntop
  raise NotImplementedError('inet_ntop() is not available on this platform')
NotImplementedError: inet_ntop() is not available on this platform
<SERPScrapper at 0xbc0f60> failed with NotImplementedError

查看gevent socket.py源代码,它似乎与Windows上的IPV6有关...

解决这个问题的任何想法或主张?

编辑:我没有遇到其他网址的问题(例如:http://www.bing.com)。谷歌似乎正在使用IPV6。有没有办法强制进行IPV4响应?

1 个答案:

答案 0 :(得分:2)

请尝试向http://ipv4.google.com/提出请求。