2013-03-19 120 views
0

我正在使用python 3.2.2。如果我嘗試做:python urllib.request.urlopen不遵循重定向

urllib.request.urlopen('https://pypi.python.org/simple/babel') 

我獲得以下錯誤信息:

Traceback (most recent call last): 
    File "solver.py", line 93, in <module> 
     generateMetadata('babel') 
    File "solver.py", line 76, in generateMetadata 
     linklist = parseURL(name) 
    File "solver.py", line 20, in parseURL 
     resp = opener.open(REP_URL+name+'/') 
    File "/usr/lib/python3.2/urllib/request.py", line 375, in open 
     response = meth(req, response) 
    File "/usr/lib/python3.2/urllib/request.py", line 487, in http_response 
     'http', request, response, code, msg, hdrs) 
    File "/usr/lib/python3.2/urllib/request.py", line 407, in error 
     result = self._call_chain(*args) 
    File "/usr/lib/python3.2/urllib/request.py", line 347, in _call_chain 
     result = func(*args) 
    File "/usr/lib/python3.2/urllib/request.py", line 560, in http_error_302 
     headers, fp) 
    urllib.error.HTTPError: HTTP Error 301: Moved Permanently - Redirection to url '/simple/Babel' is not allowed 

搜索我發現,它會自動處理重定向後。

+1

我不能與Python 3.2.3重現此。 – 2013-03-19 13:57:47

+1

就在此之前,異常是'if urlparts.scheme not in'('http','https','ftp',''):'。您的網址必須是狡猾的,請檢查它是否使用了正確的方案。 – 2013-03-19 14:04:42

+0

我測試了python 3.2.3和3.3的相同行,並且都工作。這不可能是我碰到了一個只存在於我的顛覆中的bug,可以嗎? – WeGi 2013-03-19 14:12:34

回答

1

所以看來,Python版本3.2.0到3.2.2中存在一個bug。

如果你知道你的程序的用戶會使用這個版本,你可以嘗試猴子補丁。 (如果他們正在使用的故障版本之一,從3.2.3覆蓋具有修補一個模塊)

即使世界相應的錯誤報告:http://bugs.python.org/issue13696

+0

您可能希望包含指向我給您的錯誤報告的鏈接。 – 2013-03-19 15:01:58