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

执行sam build命令失败,报OpenSSL相关AttributeError异常求助

解决SAM构建时AttributeError: module 'lib' has no attribute 'OpenSSL_add_all_algorithms'错误

执行sam build --use-container --template ${SAM_TEMPLATE}时出现这个错误,核心原因是pyOpenSSL版本与依赖库不兼容:pyOpenSSL 23.0.0及以上版本移除了OpenSSL_add_all_algorithms属性,但部分旧依赖仍在调用它。以下是几种可行的解决方法:

  • 指定兼容的pyOpenSSL版本
    在项目的requirements.txt中添加版本限制,强制使用23.0.0之前的版本:

    pyOpenSSL<23.0.0
    

    重新执行构建命令,容器会安装兼容版本的依赖。

  • 升级AWS SAM CLI到最新版
    旧版本的SAM CLI容器镜像可能内置了存在兼容性问题的依赖包,升级SAM CLI可以获取修复后的镜像:

    pip install --upgrade aws-sam-cli
    

    升级完成后再尝试构建。

  • 检查并更新项目依赖
    排查项目中是否有依赖旧版库的情况(比如某些老版本的requests、urllib3等),将这些依赖更新到支持新版pyOpenSSL的版本。可以通过pip check命令检查依赖冲突:

    pip check
    

    根据输出提示更新对应的依赖包。

  • 使用自定义构建容器(进阶)
    如果以上方法无效,可以自定义Dockerfile来控制构建环境的依赖版本:

    1. 在项目根目录创建Dockerfile,指定基础镜像并安装兼容的依赖:
      FROM public.ecr.aws/sam/build-python3.9:latest
      RUN pip install pyOpenSSL<23.0.0
      
    2. 在samconfig.toml中配置使用自定义镜像:
      [default.build.parameters]
      container_image = "your-custom-image:tag"
      

    构建前先构建自定义镜像,再执行SAM构建命令。

内容的提问来源于stack exchange,提问作者Harnish Patel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 09:10:35