2016-11-16 17 views
10

Pythonの要求を持っていないが問題を抱えている:Pythonの要求とストリーミング - はAttributeError: 'X509' オブジェクトが属性 '_x509'

rs = requests.get(STREAM_URL, stream=True,headers=headers) 

Process Process-1: 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap 
    self.run() 
    File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run 
    self._target(*self._args, **self._kwargs) 
    File "oanda_streaming_pairs_server.py", line 287, in multistreamer 
    rs = requests.get(STREAM_URL, stream=True,headers=headers) 
    File "/usr/local/lib/python2.7/dist-packages/requests-2.12.0-py2.7.egg/requests/api.py", line 70, in get 
    return request('get', url, params=params, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/requests-2.12.0-py2.7.egg/requests/api.py", line 56, in request 
    return session.request(method=method, url=url, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/requests-2.12.0-py2.7.egg/requests/sessions.py", line 488, in request 
    resp = self.send(prep, **send_kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/requests-2.12.0-py2.7.egg/requests/sessions.py", line 609, in send 
    r = adapter.send(request, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/requests-2.12.0-py2.7.egg/requests/adapters.py", line 423, in send 
    timeout=timeout 
    File "/usr/local/lib/python2.7/dist-packages/requests-2.12.0-py2.7.egg/requests/packages/urllib3/connectionpool.py", line 594, in urlopen 
    chunked=chunked) 
    File "/usr/local/lib/python2.7/dist-packages/requests-2.12.0-py2.7.egg/requests/packages/urllib3/connectionpool.py", line 350, in _make_request 
    self._validate_conn(conn) 
    File "/usr/local/lib/python2.7/dist-packages/requests-2.12.0-py2.7.egg/requests/packages/urllib3/connectionpool.py", line 835, in _validate_conn 
    conn.connect() 
    File "/usr/local/lib/python2.7/dist-packages/requests-2.12.0-py2.7.egg/requests/packages/urllib3/connection.py", line 330, in connect 
    cert = self.sock.getpeercert() 
    File "/usr/local/lib/python2.7/dist-packages/requests-2.12.0-py2.7.egg/requests/packages/urllib3/contrib/pyopenssl.py", line 324, in getpeercert 
    'subjectAltName': get_subj_alt_name(x509) 
    File "/usr/local/lib/python2.7/dist-packages/requests-2.12.0-py2.7.egg/requests/packages/urllib3/contrib/pyopenssl.py", line 166, in get_subj_alt_name 
    cert = _Certificate(openssl_backend, peer_cert._x509) 
AttributeError: 'X509' object has no attribute '_x509' 
+4

リクエストで問題が発生しました。バージョン2.11.1を使用しなければなりませんでした。 – Tampa

+0

あなたはなぜそれを見つけましたか?私は要求2.12.1を持っているubnutu VMでこの動作を見ています。奇妙なことがあります。私は2.12.1と同じリクエストを持つ別のVMを持っています。 – user330612

+0

いいえ。他のサーバーとローカルの開発者で動作していたバージョンを確認しました。最新バージョンはありませんでした。私はコードやいくつかの依存関係との互換性のバグを想定しています。 – Tampa

答えて

10

私の場合、pyOpenSSLのバージョンが古すぎることが判明しました。私のUbuntu 14.4は、pyOpenSSLのバージョン0.13を実行していました。私はelasticsearchのpythonライブラリで報告されたエラーを取得していた。

私が実行してpyOpenSSLを更新する必要がありました:

sudo pip install -U pyOpenSSL 

あなたがしてpyOpenSSLのバージョンを確認することができます

python -c 'import OpenSSL; print(OpenSSL.__version__)' 
+0

これは私のために働いた。ありがとう – user330612

1

これはから、私のために働いた「X509」オブジェクトが属性「_x509」エラーを持っていない、2.12.1から2.11.1への要求ライブラリのバージョンをダウングレード。 Use pip install requests==2.11.1.

関連する問題