You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装camelot-py后运行boto3脚本出现AttributeError问题求助

问题解决:AttributeError: module 'lib' has no attribute 'X509_V_FLAG_NOTIFY_POLICY'

问题背景

安装camelot-py包后,运行boto3脚本触发以下错误:

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

已尝试升级pyopenssl和cryptography,但错误未消除。当前相关依赖版本:

  • boto3 = 1.26.138
  • cryptography = 2.1.4
  • pyOpenSSL = 17.5.0

完整报错堆栈:

Traceback (most recent call last):
  File "/home/forge/scripts/cgi-scripts/check_boto.py", line 1, in <module>
    import boto3
  File "/usr/local/lib/python3.10/dist-packages/boto3/__init__.py", line 17, in <module>
    from boto3.session import Session
  File "/usr/local/lib/python3.10/dist-packages/boto3/session.py", line 17, in <module>
    import botocore.session
  File "/usr/local/lib/python3.10/dist-packages/botocore/session.py", line 26, in <module>
    import botocore.client
  File "/usr/local/lib/python3.10/dist-packages/botocore/client.py", line 15, in <module>
    from botocore import waiter, xform_name
  File "/usr/local/lib/python3.10/dist-packages/botocore/waiter.py", line 18, in <module>
    from botocore.docs.docstring import WaiterDocstring
  File "/usr/local/lib/python3.10/dist-packages/botocore/docs/__init__.py", line 15, in <module>
    from botocore.docs.service import ServiceDocumenter
  File "/usr/local/lib/python3.10/dist-packages/botocore/docs/service.py", line 14, in <module>
    from botocore.docs.client import ClientDocumenter, ClientExceptionsDocumenter
  File "/usr/local/lib/python3.10/dist-packages/botocore/docs/client.py", line 17, in <module>
    from botocore.docs.example import ResponseExampleDocumenter
  File "/usr/local/lib/python3.10/dist-packages/botocore/docs/example.py", line 13, in <module>
    from botocore.docs.shape import ShapeDocumenter
  File "/usr/local/lib/python3.10/dist-packages/botocore/docs/shape.py", line 19, in <module>
    from botocore.utils import is_json_value_header
  File "/usr/local/lib/python3.10/dist-packages/botocore/utils.py", line 37, in <module>
    import botocore.httpsession
  File "/usr/local/lib/python3.10/dist-packages/botocore/httpsession.py", line 45, in <module>
    from urllib3.contrib.pyopenssl import (
  File "/usr/local/lib/python3.10/dist-packages/urllib3/contrib/pyopenssl.py", line 50, in <module>
    import OpenSSL.crypto
  File "/usr/lib/python3/dist-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import crypto, SSL
  File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1550, in <module>
    class X509StoreFlags(object):
  File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1568, in X509StoreFlags
    NOTIFY_POLICY = _lib.X509_V_FLAG_NOTIFY_POLICY
AttributeError: module 'lib' has no attribute 'X509_V_FLAG_NOTIFY_POLICY'. Did you mean: 'X509_V_FLAG_EXPLICIT_POLICY'?

解决方法

1. 修复依赖版本冲突

你的pyOpenSSL=17.5.0和cryptography=2.1.4版本过旧,且与系统OpenSSL库不兼容。X509_V_FLAG_NOTIFY_POLICY是较新版本OpenSSL才有的常量,旧版本绑定库不支持该字段,导致报错。

2. 强制更新兼容版本

执行以下命令更新到兼容的依赖版本:

pip install --upgrade pyOpenSSL>=23.0.0 cryptography>=40.0.0

注:多Python环境下需用对应环境的pip(如pip3)执行。

3. 处理系统级OpenSSL冲突

若更新后仍报错,可能是系统全局OpenSSL版本过低:

  • 以Ubuntu为例,升级系统OpenSSL:
sudo apt update && sudo apt install --only-upgrade openssl
  • 使用虚拟环境隔离依赖:创建新虚拟环境,重新安装boto3和camelot-py,避免系统预装库干扰。

4. 验证修复

运行以下测试脚本确认问题解决:

import boto3
s3 = boto3.client('s3')
print("boto3导入成功")

内容的提问来源于stack exchange,提问作者Ajay dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 10:36:01