Python-urllib2超时

Python-urllib2超时,python,urllib2,Python,Urllib2,下面是我的代码片段 opener = urllib2.build_opener(redirect_handler.MyHTTPRedirectHandler()) opener.addheaders = [('Accept-encoding', 'gzip')] fetch_timeout = 12 self.response = opener.open(url, timeout=fetch_timeout) 但是,它的代码在超时前仍要等待60秒。。。 有什么线索吗?您使用的是哪个版本。它是在

下面是我的代码片段

opener = urllib2.build_opener(redirect_handler.MyHTTPRedirectHandler())
opener.addheaders = [('Accept-encoding', 'gzip')]
fetch_timeout = 12
self.response = opener.open(url, timeout=fetch_timeout)
但是,它的代码在超时前仍要等待60秒。。。
有什么线索吗?

您使用的是哪个版本。它是在2.6中添加的

方法也很简单

urllib2.urlopen(url[, data][, timeout])
你能试着提供吗

self.response = opener.open(url, None, fetch_timeout)

是的,对于所有其他的,您仍然可以使用套接字模块来设置套接字超时。

您可能需要设置套接字超时

import socket

default_timeout = 12

socket.setdefaulttimeout(default_timeout)

看看这个类和方法

+1,当你的回答进来时,我正在编辑我的答案。这适用于所有版本。似乎不想工作。执行socket.setdefaulttimeout(12),然后打印socket.getdefaulttimeout()表示无这是OSX Snow Leopard上的2.6.1