安装pyOpenSSL时出错

时间:2014-04-11 07:20:49

标签: python openssl

我尝试使用pip安装pyOpenSSL,python版本是2.7,操作系统是linux。 安装pyOpenSSL后,当我尝试在python中导入模块时,出现以下错误:

Python 2.7.5 (default, Jun 27 2013, 03:17:39)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import OpenSSL
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import rand, crypto, SSL
  File "/usr/local/lib/python2.7/site-packages/OpenSSL/SSL.py", line 84, in <module>
    OP_NO_TICKET = _lib.SSL_OP_NO_TICKET
AttributeError: 'FFILibrary' object has no attribute 'SSL_OP_NO_TICKET'
>>>

我尝试卸载pyOpenSSL并重新安装,但出现了同样的错误。

2 个答案:

答案 0 :(得分:3)

这是因为低版本pyopenssl尚未定义SSL_OP_NO_TICKET。 从https://github.com/pyca/pyopenssl.git克隆最新的pyopenssl并安装它,然后就可以了。没有。

答案 1 :(得分:0)

此处描述了修复: https://github.com/pyca/pyopenssl/issues/130

确实,您可以手动应用它(不是真的推荐,但很容易) 或者从github下载档案 修复程序的链接:https://github.com/pyca/pyopenssl/commit/e7a6939a22a4290fff7aafe39dd0db85157d5e05

此修复程序适用于SSL.py

-OP_NO_TICKET = _lib.SSL_OP_NO_TICKET
+try:
+    OP_NO_TICKET = _lib.SSL_OP_NO_TICKET
+except AttributeError:
+    pass