Python – Usando FancyURLopener, excepción ssl – violación de protocolo

Por favor, consulte el siguiente código:

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") 

Me sale el

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

Busqué y encontré esta pregunta en SO, pero es un error muy antiguo y parece corregido (el código en esa pregunta funciona para mí).

PS_1 : el código se toma del código fuente de Keras PS_2 : esto es más al punto de la versión de esta pregunta

EDIT_1

Estos errores ocurren con este archivo solamente.

Si abro un archivo pdf , funciona perfectamente.

 >>> ParanoidURLopener().retrieve("http://anh.cs.luc.edu/python/hands-on/3.1/Hands-onPythonTutorial.pdf", "a.pdf") ('a.pdf', ) 

Y con esto también funciona.

 >>> ParanoidURLopener().retrieve("http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz", "a.gz") ('a.gz', )