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

将OpenAI Python依赖导入AWS Lambda失败的问题排查求助

AWS Lambda添加OpenAI库报错:No module named 'pydantic_core._pydantic_core' 解决指南

可能原因

  • 编译环境不兼容:OpenAI依赖的pydantic_core包含C扩展二进制文件,若在Windows/Mac等非Amazon Linux 2环境下直接安装,生成的二进制文件无法在Lambda的Amazon Linux 2运行环境中加载。而requests是纯Python库,无系统架构依赖,因此不会报错。
  • Layer目录结构错误:Lambda Layer要求Python依赖必须放在python/lib/pythonX.X/site-packages(X.X为Lambda使用的Python版本,如3.9)路径下,若目录层级错误,Lambda无法识别依赖。
  • 依赖缺失或版本冲突:安装OpenAI时未完整拉取所有子依赖(如pydantic_core),或依赖版本与Lambda内置环境冲突。

排查步骤

  1. 验证Layer目录结构
    解压Layer的ZIP包,确认内部路径为python/lib/python<版本号>/site-packages/,且该路径下包含openai、pydantic、pydantic_core等所有依赖文件夹。
  2. 在兼容环境中重新构建依赖
    使用Amazon Linux 2的Docker容器构建符合Lambda要求的依赖包,执行以下命令:
    # 替换python3.9为你的Lambda使用的Python版本
    docker run -v "$PWD":/var/task public.ecr.aws/sam/build-python3.9:latest /bin/sh -c "pip install openai -t python/lib/python3.9/site-packages/; zip -r openai-layer.zip python/"
    
    生成的openai-layer.zip即为兼容Lambda的Layer包。
  3. 检查依赖完整性
    解压新生成的Layer包,查看pydantic_core目录下是否存在.so格式的Linux二进制文件,若存在则说明依赖安装完整。
  4. 匹配Python版本
    确认Lambda函数使用的Python版本与Layer中依赖的Python版本完全一致(如Lambda用3.10,Layer路径需为python/lib/python3.10/site-packages/)。

替代导入方法

  1. 使用Lambda容器镜像
    将代码与所有依赖打包为Docker镜像,上传至Amazon ECR后创建Lambda函数。这种方式可完全控制运行环境,避免层的兼容性问题。
  2. 借助AWS SAM CLI
    使用SAM CLI的sam build命令,该命令会自动在兼容Lambda的环境中构建依赖并打包,无需手动处理Layer目录或环境兼容问题。
  3. 内嵌依赖至函数包
    在兼容环境中将OpenAI及所有依赖安装至函数代码目录,然后将整个目录打包为ZIP上传至Lambda,无需使用Layer。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 05:40:22