【问题标题】:AttributeError: module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'AttributeError: 模块 \'lib\' 没有属性 \'X509_V_FLAG_CB_ISSUER_CHECK\'
【发布时间】:2022-10-23 20:23:45
【问题描述】:

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

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

导致它爆炸的代码行是:

from apiclient.discovery import build

我尝试了 pip 卸载和 pip 升级google-api-python 客户端但我似乎无法找到有关此特定错误的任何信息。

对于它的价值 - 我正在尝试通过 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'

【问题讨论】:

  • 您关注Google analytics python quickstart? 的服务帐号了吗?或QuickStart python 安装应用程序
  • @Daimto 我确实做到了。我在这里发帖是想看看是否有人知道我可以验证哪些软件包是否存在我正在处理的版本差异。我至少认为这是基于我的小研究的问题,因为这发生了。
  • X509 向我暗示您仍在为服务帐户使用 p12 证书,而不是为服务帐户使用 json 密钥文件。如果这是真的。然后我会建议您修复代码,以便您使用 json 密钥文件而不是 p12 文件。 “它更轻松,导致错误更少”
  • @Daimto 我正在使用 json 文件。经过几次试验和错误,我确实发现错误是由于加密版本冲突造成的。我能够启动并运行它。呜呼!

标签: python google-analytics-api


【解决方案1】:

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

然后升级最新版本的 PyOpenSSL。

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

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

【讨论】:

  • 如果您像我一样,请务必不要阅读此部分:“编辑 crypto.py 文件并通过使用 # 将其注释掉来删除违规行”
  • 在这里使用 pip 和 pip3 有什么区别?如果使用 python3 和 rpi4,我应该做 pip3 吗?
【解决方案2】:

在我的 ubuntu“20.04.5”上,我设法解决了错误:

CB_ISSUER_CHECK = _lib.X509_V_FLAG_CB_ISSUER_CHECK

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

apt-get --reinstall install python-apt
apt-get --reinstall install apt-transport-https
apt-get install build-essential libssl-dev libffi-dev python-dev

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

希望它在一天对某人有所帮助。

【讨论】:

【解决方案3】:

如果您的点子完全损坏,正如@sgdesmet 在评论中建议的那样,解决此问题的唯一选择是

“编辑 crypto.py 文件并通过用 # 注释掉有问题的行”

没有其他解决方案适合我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-14
    • 2019-02-18
    • 1970-01-01
    • 2020-01-01
    • 2019-07-20
    • 2021-11-05
    • 2021-11-04
    相关资源
    最近更新 更多