python请求ssl握手失败

2024-04-26 03:21:44 发布

您现在位置:Python中文网/ 问答频道 /正文

每次我试着做:

requests.get('https://url') 

我收到一条消息:

import requests
>>> requests.get('https://reviews.gethuman.com/companies') 
Traceback (most recent call last): 
   File "<stdin>", line 1, in <module> 
   File "/usr/lib/python2.7/dist-packages/requests/api.py", line 55, in get 
    return request('get', url, **kwargs) 
   File "/usr/lib/python2.7/dist-packages/requests/api.py", line 44, in request 
    return session.request(method=method, url=url, **kwargs)    
   File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 455, in request 
    resp = self.send(prep, **send_kwargs) 
   File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 558, in send 
    r = adapter.send(request, **kwargs) 
   File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 385, in send 
    raise SSLError(e) requests.exceptions.SSLError: [Errno 1]
_ssl.c:510: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

我什么都试过了:

  • 更新我的请求
  • 更新我的ssl

但什么都没变。

我使用的是Python2.7.6,无法更改。


Tags: inpyhttpssendurlgetrequestlib
3条回答

我解决了这个问题,最后我把ubuntu从14.04更新到14.10,问题解决了

但是在旧版本的ubuntu和python中,我安装了这些lib,它似乎解决了我所有的问题

sudo apt-get install python-dev libssl-dev libffi-dev
sudo pip2.7 install -U pyopenssl==0.13.1 pyasn1 ndg-httpsclient

如果没有安装pip2.7,可以使用pip

在OSX上,使用Python2.7.10/requests 2.9.1,我只需要使用其安全设置安装requests

pip install requests[security]

这将安装pyOpenSSLndg-httpsclientpyasn1https://github.com/kennethreitz/requests/blob/master/setup.py#L70

如果您无法将Python版本升级到2.7.9,那么将请求包降级到2.5.3。这对我很有用。

sudo pip install requests==2.5.3

编辑

您还可以安装具有安全扩展名的请求

pip install requests[security]

相关问题 更多 >