AWS Lambda部署Python函数遇pydantic_core._pydantic_core模块缺失问题
解决AWS Lambda部署后
No module named 'pydantic_core._pydantic_core'错误 1. 修正serverless-python-requirements插件配置
检查serverless.yml里的插件配置,使用官方指定的对应架构镜像,同时禁用缓存避免旧依赖干扰:
plugins: - serverless-python-requirements custom: pythonRequirements: dockerizePip: non-linux dockerImage: public.ecr.aws/sam/build-python3.10:latest-arm64 architecture: arm64 useStaticCache: false useDownloadCache: false
2. 清理本地缓存后重新部署
删掉本地残留的构建缓存目录,彻底重新构建依赖:
rm -rf .serverless rm -rf .requirements serverless deploy
3. 强制指定适配架构的依赖版本
在requirements.txt里明确指定arm64架构的pydantic_core预编译包:
pydantic==2.4.2 pydantic_core==2.10.1 --platform manylinux_2_17_aarch64 --only-binary=:all:
4. 验证部署包内容
部署后下载Lambda的zip部署包,解压后查看pydantic_core目录下是否有_pydantic_core.so文件。如果没有,说明构建时没拉到对应架构的依赖,得重新检查docker配置。
5. 切换x86_64架构尝试
如果arm64的问题卡壳,临时换x86_64架构验证:
修改serverless.yml的provider和插件配置:
provider: name: aws runtime: python3.10 architecture: x86_64 custom: pythonRequirements: dockerizePip: non-linux dockerImage: public.ecr.aws/sam/build-python3.10:latest-x86_64
重新部署后测试。
内容的提问来源于stack exchange,提问作者Daniel Kats
相关产品推荐
相关产品推荐

