23

私は Django Celery タスクを使用して、Gevent を使用してリクエスト lib で Facebook Graph API に接続しています。私が常に実行している問題は、時々プロトコル例外に違反してEOFが発生することです。私は周りを検索しましたが、さまざまなソースがさまざまな修正を提供していますが、どれも機能していないようです。

私はsslモジュール(gevent.monkey.patch_all())と他のいくつかにモンキーパッチを適用しようとしましたが、うまくいきませんでした。

Gevent最適化を適用する前に遭遇したことがないため、一部のソースが示唆する可能性があるため、これがopensslの問題であるかどうかさえわかりません

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')': / ID /events?limit=5000&fields=descriptionにより接続が切断された後、再試行 (残り 5 回試行) ,name,location,start_time,end_time&access_token=トークン

4

3 に答える 3

1

最新の Python 2.7 (2.7.11) をインストールしたところ、問題は解決しました。この問題は 2.7.6 でも解決される可能性があると思います (私は Mac OSX で 2.7.5 を使用していました)。

于 2015-12-08T21:34:32.577 に答える
0

機械学習のためにツイートを取得しているときに同じエラーが発生しました。次の pip install を実行すると役立ちました。これは機能します:

pip install ndg-httpsclient
pip install pyopenssl
pip install pyasn1

それは私のSSLErrorを削除しました:プロトコルに違反してEOFが発生しました(_ssl.c:590)エラー。

それが役に立てば幸い。

于 2018-02-10T09:44:48.793 に答える