2017-09-15 66 views
0

任何人都有tweepy和ssl的問題?我想過手動更改tweepy代碼,但不確定究竟需要更改哪些內容。我設置了我的OAuth,並正在調用tweepy.API(auth)。我試圖在那裏添加一個verify = false,但是由於我認爲它不允許在當前版本的tweepy中,所以會引發錯誤。tweepy ssl證書未能發送請求

這是我的錯誤:

Traceback (most recent call last): 
    File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 594, in urlopen 
    self._prepare_proxy(conn) 
    File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 810, in _prepare_proxy 
    conn.connect() 
    File "/usr/local/lib/python3.6/site-packages/urllib3/connection.py", line 326, in connect 
    ssl_context=context) 
    File "/usr/local/lib/python3.6/site-packages/urllib3/util/ssl_.py", line 325, in ssl_wrap_socket 
    return context.wrap_socket(sock, server_hostname=server_hostname) 
    File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 401, in wrap_socket 
    _context=self, _session=session) 
    File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 808, in __init__ 
    self.do_handshake() 
    File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 1061, in do_handshake 
    self._sslobj.do_handshake() 
    File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 683, in do_handshake 
    self._sslobj.do_handshake() 
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:748) 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 440, in send 
    timeout=timeout 
    File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 630, in urlopen 
    raise SSLError(e) 
urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:748) 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "/usr/local/lib/python3.6/site-packages/tweepy/binder.py", line 187, in execute 
    proxies=self.api.proxy) 
    File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 502, in request 
    resp = self.send(prep, **send_kwargs) 
    File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 612, in send 
    r = adapter.send(request, **kwargs) 
    File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 514, in send 
    raise SSLError(e, request=request) 
requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:748) 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "appauth.py", line 17, in <module> 
    print(api.favorites()) 
    File "/usr/local/lib/python3.6/site-packages/tweepy/binder.py", line 245, in _call 
    return method.execute() 
    File "/usr/local/lib/python3.6/site-packages/tweepy/binder.py", line 189, in execute 
    raise TweepError('Failed to send request: %s' % e) 
tweepy.error.TweepError: Failed to send request: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:748) 

回答

0

嘗試安裝下一個軟件包,

pip install pyOpenSSL pyasn1 certifi 

,並嘗試再次運行代碼。

+0

這給了我一個壞握手太:(由SSLError(SSLError(由於 「壞握手:錯誤([( 'SSL程序', 'tls_process_server_certificate', '證書驗證失敗')])」) ,)) – user6754289

+0

如果你使用的是Mac OS,如果你還沒有openssl,試試'哪個openssl',請嘗試安裝'brew install openssl',然後再次運行代碼;) –

+0

沒有運氣!我在mac上雖然 – user6754289

0

我有SSL問題,我不得不導入這個庫來解決這個問題。

import urllib3.contrib.pyopenssl 

urllib3.contrib.pyopenssl.inject_into_urllib3()