上传ZIP创建的AWS Lambda测试报错:找不到pydantic_core模块
问题解答
1. 问题根源确认
是的,你下载的pydantic_core-2.16.2-cp311-cp311-macosx_10_12_x86_64.whl就是报错的核心原因。AWS Lambda的运行环境基于Linux系统(支持x86_64或arm64架构),macOS平台的二进制wheel包无法在Linux环境中被Python识别加载,因此会触发No module named 'pydantic_core'的导入错误。
2. 获取Lambda兼容wheel包的方法
方法一:用Docker模拟Lambda环境构建依赖
Lambda官方提供了对应Python版本的Docker镜像,可直接在容器内安装兼容依赖:
- 拉取对应Python版本的Lambda镜像(以3.11为例):
docker pull public.ecr.aws/lambda/python:3.11 - 运行容器并挂载本地工作目录:
docker run -v $(pwd):/app -it public.ecr.aws/lambda/python:3.11 bash - 在容器内进入
/app目录,将依赖安装到指定文件夹:pip install pydantic-core -t ./package - 退出容器后,将
package目录下的所有文件与你的lambda_function.py一起打包成ZIP文件,上传到Lambda即可。
方法二:直接指定目标平台下载wheel
使用pip的--platform参数强制下载Linux兼容的wheel包:
- 针对x86_64架构的Lambda:
pip install pydantic-core --platform manylinux2014_x86_64 --only-binary=:all: --target ./package - 针对arm64架构的Lambda:
pip install pydantic-core --platform manylinux2014_aarch64 --only-binary=:all: --target ./package
下载完成后,同样将package内的文件与函数代码打包上传。
方法三:构建Lambda层复用依赖
将pydantic-core打包成Lambda层,可在多个函数间复用:
- 按照上述两种方法之一安装依赖到
python/lib/python3.11/site-packages/目录下(注意路径层级要求) - 将整个
python目录压缩成ZIP文件,上传为Lambda层 - 在你的Lambda函数配置中关联该层,即可直接导入
pydantic_core
内容的提问来源于stack exchange,提问作者sheetal_158
相关产品推荐
相关产品推荐

