AWS Lambda部署FastAPI报错:找不到pydantic_core._pydantic_core模块
解决AWS Lambda中"No module named 'pydantic_core._pydantic_core'"错误
可能的原因及解决办法
1. 依赖打包架构不兼容
Lambda运行在x86_64架构的Amazon Linux 2环境,如果你在ARM架构设备(比如M1/M2 Mac)本地打包依赖,pydantic_core会编译成ARM版本,上传到Lambda后无法识别,导致找不到底层模块。
解决方法:
- 用Docker模拟Lambda环境打包:
拉取AWS官方的Python构建镜像,在容器内安装依赖,确保架构兼容:docker run -v "$PWD:/var/task" public.ecr.aws/sam/build-python3.10:latest /bin/sh -c "pip install -r requirements.txt -t ." - 使用AWS SAM CLI打包:
执行sam build命令,SAM会自动在兼容Lambda的环境中构建依赖,避免架构问题。
2. requirements.txt依赖配置问题
单独指定pydantic_core可能导致版本不匹配,FastAPI依赖pydantic,而pydantic会自动管理适配的pydantic_core版本。
解决方法:
- 移除requirements.txt中的
pydantic_core,替换为指定pydantic版本(根据你的FastAPI版本调整,FastAPI 0.100+推荐pydantic v2):fastapi>=0.100.0 pydantic>=2.0.0 uvicorn>=0.23.2 - 若必须单独指定pydantic_core,选择与Python 3.10、x86_64架构兼容的版本,比如:
pydantic_core==2.10.1
3. 打包时依赖未正确包含
打包过程中可能遗漏了pydantic_core的底层二进制文件,或者目录结构不符合Lambda的要求。
解决方法:
- 检查本地打包目录,确认
pydantic_core文件夹下存在_pydantic_core.so(Linux x86_64版本的二进制文件)。 - 使用正确的zip命令打包,避免排除必要文件:
zip -r lambda-deployment.zip . -x "*.pyc" "__pycache__/*"
4. Lambda层配置问题(若使用了层)
如果将依赖放在Lambda层,可能层的架构不兼容或部署未生效。
解决方法:
- 重新构建Lambda层,确保使用兼容x86_64架构的环境打包。
- 检查层的目录结构,确认
python/lib/python3.10/site-packages下包含pydantic_core的所有文件,然后重新关联到Lambda函数。
内容的提问来源于stack exchange,提问作者Mohiuddin Khan
相关产品推荐
相关产品推荐

