requests.exceptions.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 警报握手失败 (_ssl.c:600)
我已经更改了终端的 openssl 版本,
kingw angdeMini:icampuslist_web kingwang$ openssl 版本
OpenSSL 1.0.2d 2015 年 7 月 9 日
但是我的python的openssl版本还是老版本:
kingw angdeMini:icampuslist_web kingwang$ python -c "import ssl; print(ssl.OPENSSL_VERSION)"
OpenSSL 0.9.8zg 2015 年 7 月 14 日
我知道 [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] 的错误是因为版本错误。
我想知道如何更改我的python的openssl版本~
谢谢!
你的 Python 的 OpenSSL 版本是它编译的目标。 在这种情况下,对于 Mac OS X,您需要自己编译一个新的 Python。 最简单的方法是使用Homebrew : brew install python
将为您提供一个新的 Python,它具有更现代的 OpenSSL。
您还可以通过运行pip install pyasn1 ndg-httpsclient pyopenssl
为自己修复错误,这也将为您提供一个只有请求可以使用的更新的 OpenSSL。
这是我第一次使用 github 来解决问题。
@卢卡萨
谢谢! 我的错误现在解决了。
我使用 pyenv 来运行 python。 我卸载了python,然后重新安装。 它正在工作! 好开心~~
顺便说一句,我首先尝试了第二种方法,但它不起作用。 然后我尝试了第一个。我不知道原因。 也许我已经安装了这些软件包。
最后,非常感谢!
最有用的评论
你的 Python 的 OpenSSL 版本是它编译的目标。 在这种情况下,对于 Mac OS X,您需要自己编译一个新的 Python。 最简单的方法是使用Homebrew :
brew install python
将为您提供一个新的 Python,它具有更现代的 OpenSSL。您还可以通过运行
pip install pyasn1 ndg-httpsclient pyopenssl
为自己修复错误,这也将为您提供一个只有请求可以使用的更新的 OpenSSL。