Python - 使用FancyURLopener,ssl异常 - 违反协议

时间:2016-01-19 10:40:50

标签: python url ubuntu ssl openssl

请参阅以下代码:

from six.moves.urllib.request import FancyURLopener

class ParanoidURLopener(FancyURLopener):
     def http_error_default(self, url, fp, errcode, errmsg, headers):
         raise Exception('URL fetch failure on {}: {} -- {}'.format(url, errcode, errmsg))

ParanoidURLopener().retrieve("https://s3.amazonaws.com/img-datasets/mnist.pkl.gz", "a.pkl.gz")

我得到了

ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:645)

我四处搜索,并在SO上发现了this的问题,但这是一个很老的错误,似乎已经修复了(该问题中的代码对我有用)。

PS_1:代码取自Keras source code PS_2:这更像是this问题的点版本

EDIT_1

这些错误仅发生在此文件中。

如果我打开pdf文件,它会完美运行。

>>> ParanoidURLopener().retrieve("http://anh.cs.luc.edu/python/hands-on/3.1/Hands-onPythonTutorial.pdf", "a.pdf")
('a.pdf', <http.client.HTTPMessage object at 0x7f623da36128>)

并且这也是有效的

>>> ParanoidURLopener().retrieve("http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz", "a.gz")
('a.gz', <http.client.HTTPMessage object at 0x7f623da36860>)

0 个答案:

没有答案