【问题标题】:A unique URLError: <urlopen error timed out> Error I am getting一个唯一的 URLError: <urlopen error timed out> 我得到的错误
【发布时间】:2026-02-07 17:05:01
【问题描述】:

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

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>

顺便说一句,我了解error。但这并不有趣。有趣的是,当我在 local machine or test server 上运行此程序时,一切都运行良好。这太烦人了。

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

ubuntu 10.04

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

【问题讨论】:

    标签: python apache firewall production


    【解决方案1】:

    您能否在生产服务器上使用wget 检索有问题的 URL?这可能是防火墙问题而不是 Python 错误。

    【讨论】:

      【解决方案2】:

      生产机器可能比您的测试机器或本地机器花费更长的时间似乎是合理的,这可能是由于生产系统上的配置不足或负载过大,因此您应该检查您是否知道您的超时时间是什么,并且您不是不小心将全局超时设置得太激进。

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

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

      【讨论】:

        最近更新 更多