AttributeError:'module'对象没有Python 2.7.11的属性'PROTOCOL_TLSv1_2'

时间:2016-05-18 16:10:13

标签: python macos python-2.7 ssl openssl

我遇到问题,在我的mac上获得了对我的python安装的v1.2支持。

这是我的openssl版本:

openssl version
OpenSSL 1.0.2h  3 May 2016

这是我的python版本:

python --version
Python 2.7.11

这就是我测试的方式:

>>> import ssl
>>> ssl.PROTOCOL_TLSv1_2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'PROTOCOL_TLSv1_2'

阅读本文:https://docs.python.org/2/library/ssl.html 它说:

  

某些行为可能与平台有关,因为会对此进行调用   操作系统套接字API。安装的OpenSSL版本可以   也导致行为的变化。例如,TL​​Sv1.1和TLSv1.2   附带openssl版本1.0.1。

所以我对安装OpenSSL 1.0.2h的tlsv1.2支持有要求。

有人有什么想法吗?

1 个答案:

答案 0 :(得分:2)

问题是openssl版python使用的不支持TLS 1.2。

我用brew安装了openssl,然后重新安装了python告诉它使用我用brew安装的openssl:

$ brew update
$ brew install openssl
$ brew install python --with-brewed-openssl

然后一切正常!