一个独特的URLError:<urlopen error =“”timed =“”out =“”>我得到错误</urlopen>

时间:2010-11-21 07:45:51

标签: python apache firewall production

我正在我的生产服务器上运行我的应用程序,它给了我这个错误:

File "/usr/lib/python2.6/urllib2.py", line 391, in open
   response = self._open(req, data)

 File "/usr/lib/python2.6/urllib2.py", line 409, in _open
   '_open', req)

 File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain
   result = func(*args)

 File "/usr/lib/python2.6/urllib2.py", line 1161, in http_open
   return self.do_open(httplib.HTTPConnection, req)

 File "/usr/lib/python2.6/urllib2.py", line 1136, in do_open
   raise URLError(err)

URLError: <urlopen error timed out>

BTW我理解error。但这并不有趣。有趣的是,当我在local machine or test server上运行时,每件事情都很有效。这太烦人了。

我使用相同操作系统的每个地方:

ubuntu 10.04

可能的原因是什么?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您可以在生产服务器上使用wget检索相关网址吗?这可能是防火墙问题而不是Python错误。

答案 1 :(得分:0)

生产机器可能比测试或本地机器花费的时间明显长,这可能是因为生产系统供应不足或负载过重,所以你应该检查一下你知道什么是你的超时而且你不是' t意外地将全局超时设置为过于激烈。

这可能是socket.setdefaulttimeout / socket.settimeout的问题。对urllib2.urlopen的调用应该接受python2.6中的超时参数。尝试urllib2.urlopen(...,timeout = None),看看是否可以解决问题。

在进行你的urlopen调用之前,我还会确认socket.getdefaulttimeout的值。