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

部署FastAPI到AWS Lambda时遇pydantic_core导入错误求助

解决AWS Lambda ARM64环境下FastAPI导入pydantic_core._pydantic_core失败的问题

问题根源

这个错误本质是pydantic_core作为Pydantic的底层二进制扩展库,你在Mac ARM64本地安装的版本与AWS Lambda的ARM64运行时(基于Amazon Linux系统)环境不兼容,导致无法加载对应的二进制文件。另外仅在requirements.txt中声明fastapi和mangum,未处理跨环境二进制依赖的适配问题,也是诱因之一。

解决步骤

方法1:用Docker模拟Lambda环境构建依赖

这是最可靠的跨环境依赖构建方式:

  • 拉取对应Python版本的Lambda ARM64基础镜像(以Python3.12为例):
    docker pull public.ecr.aws/lambda/python:3.12-arm64
    
  • 运行容器并挂载本地代码目录:
    docker run -v "$PWD:/var/task" -it public.ecr.aws/lambda/python:3.12-arm64 bash
    
  • 在容器内安装依赖到本地指定目录:
    pip install fastapi mangum -t python/lib/python3.12/site-packages/
    
  • 退出容器后,将生成的python目录打包为zip,作为Lambda层上传,或直接与你的代码文件一起打包上传。

方法2:用pip指定目标平台安装预编译包

如果你的pip版本≥21.0,可直接下载适配Linux ARM64的预编译二进制包:

pip install fastapi mangum --platform manylinux2014_aarch64 --only-binary=:all: -t ./packages

将packages目录内的依赖文件与你的代码一起打包上传即可。

方法3:补充完整依赖声明(可选)

虽然FastAPI会自动依赖Pydantic,但显式列出核心依赖可避免潜在问题。先生成完整依赖列表:

pip freeze > full_requirements.txt

从中提取fastapi、mangum、pydantic、pydantic_core等必要依赖项到requirements.txt,再配合上述两种环境兼容方法使用。

验证要点

  • 确保打包后main.py在zip根目录,依赖文件路径符合Lambda的搜索规则(根目录或site-packages子目录)。
  • 上传后测试Lambda函数,通过CloudWatch日志确认导入错误是否消除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 12:45:58