2010-11-21 52 views
5

我我的生產服務器上運行我的應用程序,它是給我這個錯誤:獨特URLError:<錯誤的urlopen超時>錯誤我得到

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 

這可能是什麼可能的原因?任何幫助將不勝感激。

回答

1

您可以在生產服務器上檢索有問題的網址wget嗎?這可能是一個防火牆問題,而不是一個Python錯誤。

+0

對生產服務器上的URL執行wget操作 – scoparta 2010-11-21 08:44:11

0

生產機器可能比測試機器或本地機器花費的時間要長得多似乎是合理的,這可能是由於生產系統供應不足或負載過重,所以您應該檢查一下,你是否知道你的超時時間和你是不是意外地將全球超時設置得太過分了。

這可能是socket.setdefaulttimeout/socket.settimeout的問題。對urllib2.urlopen的調用應該在python2.6中接受一個超時參數。試試urllib2.urlopen(...,timeout = None),看看能否解決問題。

我還會在進行urlopen調用之前確認socket.getdefaulttimeout的值。

相關問題