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

新手上路,请多包涵

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

 AttributeError: module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'

导致它爆炸的代码行是:

 from apiclient.discovery import build

我尝试了 pip 卸载和 pip 升级 google-api-python-client 但我似乎找不到关于这个特定错误的任何信息。

对于它的价值 - 我正在尝试通过 API 调用拉下谷歌分析信息。

这是命令提示符错误的输出

  File "C:\Analytics\Puritan_GoogleAnalytics\Google_Conversions\mcfTest.py", line 1, in <module>
    from apiclient.discovery import build
  File "C:\ProgramData\Anaconda3\lib\site-packages\apiclient__init__.py", line 3, in <module>
    from googleapiclient import channel, discovery, errors, http, mimeparse, model
  File "C:\ProgramData\Anaconda3\lib\site-packages\googleapiclient\discovery.py", line 57, in <module>
    from googleapiclient import _auth, mimeparse
  File "C:\ProgramData\Anaconda3\lib\site-packages\googleapiclient_auth.py", line 34, in <module>
    import oauth2client.client
  File "C:\ProgramData\Anaconda3\lib\site-packages\oauth2client\client.py", line 45, in <module>
    from oauth2client import crypt
  File "C:\ProgramData\Anaconda3\lib\site-packages\oauth2client\crypt.py", line 45, in <module>
    from oauth2client import _openssl_crypt
  File "C:\ProgramData\Anaconda3\lib\site-packages\oauth2client_openssl_crypt.py", line 16, in <module>
    from OpenSSL import crypto
  File "C:\ProgramData\Anaconda3\lib\site-packages\OpenSSL__init__.py", line 8, in <module>
    from OpenSSL import crypto, SSL
  File "C:\ProgramData\Anaconda3\lib\site-packages\OpenSSL\crypto.py", line 1517, in <module>
    class X509StoreFlags(object):
  File "C:\ProgramData\Anaconda3\lib\site-packages\OpenSSL\crypto.py", line 1537, in X509StoreFlags
    CB_ISSUER_CHECK = _lib.X509_V_FLAG_CB_ISSUER_CHECK
AttributeError: module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'

原文由 Doug Coats 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 19.3k
3 个回答

编辑 crypto.py 文件并通过使用 # 将其注释掉来删除有问题的行

然后升级最新版本的 PyOpenSSL。

 pip install pip --upgrade
pip install pyopenssl --upgrade

现在您可以再次重新添加注释行,它应该可以正常工作

原文由 Robin Sving 发布,翻译遵循 CC BY-SA 4.0 许可协议

由于以上所有对我来说都失败了,我在这里使用了这个技巧: https ://askubuntu.com/a/1433089/497392

 sudo apt remove python3-pip
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py

然后重启后:

 pip install pyopenssl --upgrade

原文由 Kjeld Flarup 发布,翻译遵循 CC BY-SA 4.0 许可协议

新手上路,请多包涵

将 C:\ProgramData\Anaconda3\lib\site-packages\OpenSSL 这个目录删除,注意:是删除OpenSSL 这个目录!!!, 然后更新下pip,重新安装下openssl即可
pip install pip --upgrade
pip install pyopenssl --upgrade

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题