安装pyOpenSSL时出错

0 投票
2 回答
3484 浏览
提问于 2025-04-18 02:19

我正在用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

这个问题的解决办法可以在这里找到: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 
3

这是因为低版本的pyopenssl没有定义SSL_OP_NO_TICKET这个选项。你可以从https://github.com/pyca/pyopenssl.git克隆最新的pyopenssl,然后安装它,这样就没问题了。谢谢。

撰写回答