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

Dou*_*ats 149 python google-analytics-api

最近,由于可执行文件损坏,我不得不重新安装 Python。这使得我们的 Python 脚本之一崩溃并出现以下错误:

\n
\n

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

\n
\n

导致它爆炸的代码行是:

\n
from apiclient.discovery import build\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试 pip 卸载和 pip 升级google-api-python-client,但我可以 \xe2\x80\x99t 似乎找到有关此特定错误的任何信息。

\n

无论如何,我正在尝试通过 API 调用获取Google Analytics信息。

\n

以下是命令提示符错误的输出:

\n
from apiclient.discovery import build\n
Run Code Online (Sandbox Code Playgroud)\n

Rob*_*ing 227

升级最新版本的 PyOpenSSL。

python3 -m pip install pip --upgrade
pip install pyopenssl --upgrade
Run Code Online (Sandbox Code Playgroud)

  • 我发现最好完全删除 OpenSSL 包: `rm -rf <path_to_lib_python3.7>/site-packages/OpenSSL` 然后执行 `pip install -U pyopenssl` (36认同)
  • 如果您像我一样,请务必不要阅读这部分:“编辑 crypto.py 文件并通过用 # 注释掉有问题的行” (23认同)
  • @JamesDraper 只需检查堆栈跟踪,您应该会看到 crypto.py 的路径 (4认同)
  • 是的,不清楚该文件在哪里。OP应该说的是“遇到此错误后,查看最底部的回溯报告(显示的错误消息),它应该显示文件路径”,如下所示 ` File "/usr/lib/python3/dist-packages /OpenSSL/crypto.py”,第 3126 行,在 <module>` 中,或者如果您需要,可以尝试像这样找到它 `sudo find / -name "crypto.py" -type f 2>/dev/null` 。此外,执行此操作后,它并不能解决我的问题。 (4认同)

Kje*_*rup 131

由于之前的所有答案对我来说都失败了,我在模块 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'中使用了这个技巧:

sudo apt remove python3-pip
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
Run Code Online (Sandbox Code Playgroud)

然后重新启动后:

pip install pyopenssl --upgrade
Run Code Online (Sandbox Code Playgroud)

  • 登录只是为了给你点赞!谢谢 (7认同)
  • 这也是唯一对我有用的事情;乌班图20 (4认同)

小智 67

我在 Ubuntu 20.04 上安装 Flask 和 firebase-admin 时也遇到了这个错误。以下命令解决了我的问题。首先,我使用此命令删除了 OpenSSL。

sudo rm -rf /usr/lib/python3/dist-packages/OpenSSL
sudo pip3 install pyopenssl
sudo pip3 install pyopenssl --upgrade
Run Code Online (Sandbox Code Playgroud)

  • 这个解决方案对我有用,而其他答案则不然。 (6认同)

小智 34

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

解决了我所有的问题。

  • 当我尝试这个时,我得到一个异常回溯: `CB_ISSUER_CHECK = _lib.X509_V_FLAG_CB_ISSUER_CHECK AttributeError: module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'` 这就是我们正在尝试解决的问题。 (6认同)

小智 21

sudo apt remove python3-openssl
Run Code Online (Sandbox Code Playgroud)


Ors*_*ius 11

在我的Ubuntu 20.04.5 (Focal Fossa) 上,我设法解决了该错误:

CB_ISSUER_CHECK = _lib.X509_V_FLAG_CB_ISSUER_CHECK\r
Run Code Online (Sandbox Code Playgroud)

通过重新安装以下软件包:

apt-get --reinstall install python-apt
apt-get --reinstall install apt-transport-https
apt-get install build-essential libssl-dev libffi-dev python-dev
Run Code Online (Sandbox Code Playgroud)

我不使用 pip,因为我使用Ansible playbook收到此错误消息,并且无法再访问服务器。


小智 10

对我来说,早期的答案无法帮助我,因为我遇到了所有 pip 命令的这个问题,甚至是pip3 -V. 但我通过以下方式解决了它:

  1. 如果您需要最新版本,请从https://pypi.org/project/pyOpenSSL/#files获取 URL 。

    wget https://files.pythonhosted.org/packages/00/3f/ea5cfb789dddb327e6d2cf9377c36d9d8607af85530af0e7001165587ae7/pyOpenSSL-22.1.0-py3-none-any.whl
    
    Run Code Online (Sandbox Code Playgroud)
  2. 从wheel文件安装pyOpenSSL 。

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

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

  • 请尝试 StackOverflow 的“排序依据”功能并重新考虑“上面”的措辞。 (2认同)

Dav*_*ard 5

今天早上我在系统更新并重新启动后尝试安装 weasyprint 时偶然发现了这个问题。注释掉包含以下内容的行

X509_V_FLAG_CB_ISSUER_CHECK
Run Code Online (Sandbox Code Playgroud)

/usr/lib/python3/dist-packages/OpenSSL/crypto.py中导致了进一步的错误

AttributeError: module 'lib' has no attribute 'OpenSSL_add_all_algorithms'
Run Code Online (Sandbox Code Playgroud)

所有建议的修复方法都不适合我。

  • sudo apt remove python3-pip 然后 sudo apt install python3-pip
  • sudo pip install pyopenssl --upgrade
  • sudo python3 -m easy_install pyOpenSSL-22.0.0-py2.py3-none-any.whl
  • sudo pip install --force-reinstall“加密==38.0.4”

我发现这个模块“lib”没有属性“X509_V_FLAG_CB_ISSUER_CHECK”,但它没有添加到我已经知道的任何内容。我发现这个AttributeError: module 'lib' has no attribute 'OpenSSL_add_all_algorithms'但它为在桌面上运行的人带来了警告,并且它导致了严重的系统范围问题。

我尝试通过easy_install升级OpenSSL,但找不到轮子,并且有折旧警告。最终我回到@Alexandr 的评论,他说只需使用 rm 删除 OpenSSL 即可。

sudo rm -rf /usr/lib/python3/dist-packages/OpenSSL
Run Code Online (Sandbox Code Playgroud)

从这里我尝试重新安装 OpenSSL 但发现它已经被统计了。也许旧的包被阻塞了,这就是问题的根源?

sudo pip install pyopenssl
Requirement already satisfied: pyopenssl in /usr/lib/python3/dist-packages (19.0.0)
Run Code Online (Sandbox Code Playgroud)

然后我升级了 pip 并能够安装 WeasyPrint,我希望这证实我已经解决了这个问题。

pip install pip --upgrade
Successfully installed pip-22.3.1

pip install weasyprint
Successfully installed Pyphen-0.13.2 ... weasyprint-57.2 zopfli-0.2.2
Run Code Online (Sandbox Code Playgroud)