2013-05-25 5 views
21

मैं गेवेंट का उपयोग कर अनुरोधों के साथ फेसबुक ग्राफ एपीआई से कनेक्ट करने के लिए Django Celery कार्य का उपयोग कर रहा हूं। जिस मुद्दे पर मैं लगातार चल रहा हूं वह यह है कि अब हर बार प्रोटोकॉल अपवाद के उल्लंघन में ईओएफ हुआ। मैंने चारों ओर खोज की है और विभिन्न स्रोत विभिन्न फिक्स पेश करते हैं लेकिन कोई भी काम नहीं करता है।पायथन एसएसएल कनेक्शन "ईओएफ प्रोटोकॉल का उल्लंघन करने में हुआ"

मैंने एसएसएल मॉड्यूल (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 संस्करण का उपयोग कर रहा हूँ का सुझाव दे सकता नहीं हूँ।

एक और मुद्दा यह है कि समय-समय पर ऊपर poping हालांकि URL सही है रहता है: पुनः प्रयास किया जाएगा (5 प्रयत्न राहिले) 'त्रुटि (2,' ऐसा कोई फ़ाइल या निर्देशिका ')' ने तोड़ा कनेक्शन के बाद:/आईडी/घटनाओं? सीमा = 5000 & क्षेत्रों = विवरण, नाम, स्थान, start_time, end_time & ACCESS_TOKEN = टोकन

+1

क्या आपने कोशिश की है [टीएसएसवी 1 को यहां सुझाए गए अनुसार मजबूर कर रहा है] (http://stackoverflow.com/questions/14102416/python-requests-requests-exceptions-sslerror-errno-8-ssl-c504-eof-occurred)? – jfs

+0

मैं इस फिक्स को भी आजमाउंगा। मेरी एकमात्र चिंता यह है कि जब गेवेंट पूल आकार = 1 के साथ कार्य चलाते हैं तो मुझे कोई त्रुटि नहीं मिलती है, लेकिन जब मैं अधिक चलाने की कोशिश करता हूं (2 से 10) त्रुटियां अधिक आम होती हैं (नेटवर्क पहुंच योग्य नहीं, ईओएफ एसएसएल त्रुटि, नहीं ऐसी फाइल या निर्देशिका)। तो मेरे लिए यह अपने gevent मुद्दा लगता है? – user962563

+0

मुझे 'gevent' /' request' संगतता की वर्तमान स्थिति पता नहीं है। क्या आपने 'grequests' की कोशिश की है? – jfs

उत्तर

14

का उपयोग मजबूर TLSv1 fix के रूप में सुझाव द्वारा जेएफ सेबस्टियन सभी मुद्दों मैं का सामना करना पड़ रहा था तय की। के बारे में भविष्य प्रश्नों के लिए

संकेत:

  • DNSError अपवाद - 0.13.X से Gevent उन्नयन फिक्स इस मुद्दे

  • एसएसएल मुद्दों 1.0rc के लिए - जेएफ सेबस्टियन

    द्वारा प्रदान की कड़ी में ठीक देखो
1

मैंने नवीनतम पायथन 2.7 (2.7.11) स्थापित किया और समस्या दूर हो गई। मेरा मानना ​​है कि समस्या को भी 2.7.6 में हल किया जा सकता है (मैक ओएसएक्स पर 2.7.5 का उपयोग कर रहा था)।

+1

मुझे अभी इस समस्या से पाइथन 2.7.6 के साथ उबंटू 3.13.0-48-जेनेरिक –

0

मुझे मेरी मशीन सीखने के लिए ट्वीट लाने के दौरान एक ही त्रुटि हो रही थी। निम्नलिखित के पाइप इंस्टॉल करने में मेरी मदद की। यह काम करता है:

pip install ndg-httpsclient 
pip install pyopenssl 
pip install pyasn1 

यह मेरी SSLError हटाया: त्रुटि: EOF प्रोटोकॉल का उल्लंघन (590 _ssl.c) में हुई।

उम्मीद है कि यह मदद करता है।

संबंधित मुद्दे