python django celery python-requests gevent

Conexión SSL de Python "EOF ocurrió en violación del protocolo"



django celery (3)

Estaba teniendo el mismo error durante la búsqueda de tweets para mi aprendizaje automático. Hacer la instalación de pip de lo siguiente me ayudó. Esto funciona:

pip install ndg-httpsclient pip install pyopenssl pip install pyasn1

Se eliminó mi SSLError: EOF se produjo en violación del error de protocolo (_ssl.c: 590).

Espero eso ayude.

Estoy usando la tarea Django Celery para conectarme a la API de Graph de Facebook con las solicitudes lib utilizando Gevent. El problema al que me estoy ejecutando constantemente es que de vez en cuando me sale EOF en violación de la excepción del protocolo. He buscado alrededor y varias fuentes ofrecen soluciones diferentes, pero ninguna parece funcionar.

He intentado parchar el módulo ssl (gevent.monkey.patch_all ()) y algunos otros también, pero no tuve suerte.

Ni siquiera estoy seguro de si se trata de un problema de openssl, ya que algunas fuentes pueden sugerirlo, ya que no lo he encontrado antes de aplicar la optimización de Gevent

Connection error: [Errno 8] _ssl.c:504: EOF occurred in violation of protocol Traceback (most recent call last): File "/home/user/workspace/startup/project/events/tasks.py", line 52, in _process_page data = requests.get(current_url) File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/api.py", line 55, in get return request(''get'', url, **kwargs) File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/api.py", line 44, in request return session.request(method=method, url=url, **kwargs) File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/sessions.py", line 354, in request resp = self.send(prep, **send_kwargs) File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/sessions.py", line 460, in send r = adapter.send(request, **kwargs) File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/adapters.py", line 250, in send raise SSLError(e) SSLError: [Errno 8] _ssl.c:504: EOF occurred in violation of protocol

Estoy usando la última versión 1.0rc de Gevent.

Otro problema que sigue apareciendo de vez en cuando aunque la URL es correcta es: Reintentar (quedan 5 intentos) después de la conexión interrumpida por ''error (2,'' No hay tal archivo o directorio '')'': / ID / events? Limit = 5000 & fields = description , nombre, ubicación, start_time, end_time & access_token = TOKEN


Instalé la última versión de Python 2.7 (2.7.11) y el problema desapareció. Creo que el problema podría resolverse en 2.7.6 (estaba usando 2.7.5 en Mac OSX).


Usando el arreglo forzado de TLSv1 como lo sugirió JF, Sebastian arregló todos los problemas que enfrentaba.

Consejos para futuras preguntas sobre:

  • Excepción DNSError: la actualización de Gevent de 0.13.X a 1.0rc soluciona este problema

  • Problemas de SSL - mira la corrección en el enlace proporcionado por JF Sebastian