模块“lib”没有属性“X509_V_FLAG_CB_ISSUER_CHECK”

sno*_*now 31 openssl

我在我的 ubuntu 机器上使用 python 3.6,并在进行一些测试时遇到此错误:

CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography and will be removed in a future release.
...
from OpenSSL import crypto, SSL
default:       File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1550, in <module>
default:         class X509StoreFlags(object):
default:       File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1570, in X509StoreFlags
default:         CB_ISSUER_CHECK = _lib.X509_V_FLAG_CB_ISSUER_CHECK
default:     AttributeError: module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'
Run Code Online (Sandbox Code Playgroud)

对错误进行了研究。所以我安装了 python 3.9,然后更新替代方案以将 python 3.9 指定为要使用的主要 python。然后我重新安装并升级 OpenSSL 和加密技术。

sudo pip3 install pyOpenSSL --upgrade
sudo pip3 install cryptography --upgrade
Run Code Online (Sandbox Code Playgroud)

我再次运行测试,仍然面临同样的错误。

我决定检查 python3.9 dist-packages 文件夹 (/usr/local/lib/python3.9/dist-packages/) 并意识到 OpenSSL 和 Cryptography 无法找到。它们位于 /usr/local/lib/python3.6/dist-packages/ 中。这可能是错误持续存在的原因吗?

Leo*_*opd 25

我遇到了这个问题pyOpenSSL==19.0.0并能够解决这个问题

pip3 install pyOpenSSL --upgrade
Run Code Online (Sandbox Code Playgroud)


小智 16

似乎是由于 pip 22.2.2 升级所致。检查是否可以将 pyOpenSSL 升级到 22.0.0 以解决该问题。

如果不起作用请告诉我。

  • 您有链接或文档可以让您得出这个结论吗? (2认同)

小智 14

我有同样的问题。您需要将 pip 更新到最新版本。

  1. 删除旧版本
sudo apt remove python3-pip 
Run Code Online (Sandbox Code Playgroud)
  1. 根据pip 安装指南,执行以下操作:
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
Run Code Online (Sandbox Code Playgroud)


小智 11

由于这个问题,我的 pip 停止工作(我什至无法获取版本)。

我通过从pypi.org下载问题包并通过easy_install模块更新它解决了这个问题:

python3 -m easy_install pyOpenSSL-22.0.0-py2.py3-none-any.whl
Run Code Online (Sandbox Code Playgroud)


Top*_*naz 7

将加密技术升级到版本 38.0.1 后,pip 命令在我的 Linux 系统上完全损坏,我无法以任何方式修复它。我只能通过删除该行来解决该问题

“CB_ISSUER_CHECK = _lib.X509_V_FLAG_CB_ISSUER_CHECK”

来自文件 /usr/lib/python3/dist-packages/OpenSSL/crypto.py

万岁!之后,pip 再次工作,我可以将加密技术降级到与 pyOpenSSL==20.0.1 兼容的版本:

pip 卸载密码学

pip install --升级加密==36.0.2


小智 5

有同样的错误。将 pyOpenSSL 包更新为 22.0.0 版本。现在工作正常。