我使用Django芹菜任务连接到Facebook图形API,使用Gevent连接请求库。我经常遇到的问题是,时不时会出现违反协议异常的EOF。我到处搜索,各种来源提供不同的修复,但似乎没有工作。
我试过monkey修补ssl模块(gevent.monkey.patch_all())和其他一些模块,但没有成功。
我甚至不确定这是否是openssl问题,因为在应用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
我正在使用最新的1.0rc Gevent版本。
尽管URL是正确的,但另一个经常弹出的问题是: 在连接被“error(2,No such file or directory')”中断后重试(仍有5次尝试):/ID/events?limit=5000&fields=描述、名称、位置、开始时间、结束时间和访问令牌
我在为我的机器学习获取tweets时也犯了同样的错误。做以下的pip安装帮助了我。这是有效的:
它删除了我的ssl error:EOF发生违反协议(_ssl.c:590)的错误。
希望有帮助。
使用J.F Sebastian建议的强制TLSv1 fix修复了我所面临的所有问题。
关于以下问题的提示:
DNSError异常-将Gevent从0.13.X升级到1.0rc可解决此问题
SSL问题-查看J.F Sebastian提供的链接中的修复程序
我安装了最新的Python2.7(2.7.11),问题就解决了。我相信这个问题甚至可以在2.7.6中解决(我在Mac OSX上使用的是2.7.5)。
相关问题 更多 >
编程相关推荐