AWS Lambda(Python)自定义层导入numpy遇错误求助
解决AWS Lambda自定义层导入numpy的错误
问题根源
你当前使用的numpy wheel包是PyPy 3.9专用版本(文件名里的pp39标识),但AWS Lambda运行的是标准CPython 3.10,版本不兼容触发了numpy的源码目录检测错误。
修复步骤
下载适配CPython 3.10的numpy wheel
选择对应x86_64架构、manylinux环境、CPython3.10版本的wheel包,比如numpy-1.26.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(注意文件名里的cp310对应CPython3.10)。重新构建自定义层
- 创建临时工作目录,保持层级结构为
python/lib/python3.10/site-packages/ - 执行命令将wheel安装到目标目录:
pip install <下载的numpy wheel文件名> --target python/lib/python3.10/site-packages/ - 将
python目录打包成zip文件(确保zip根目录就是python文件夹,不要包含外层额外目录) - 上传这个zip包到AWS Lambda层
- 创建临时工作目录,保持层级结构为
验证层结构
确认Lambda层解压后,numpy相关文件(numpy文件夹、numpy-1.26.2.dist-info、numpy.libs)位于/opt/python/lib/python3.10/site-packages/下,和你其他正常导入的库路径一致。
额外确认
检查Lambda函数的运行时设置为Python 3.10,和自定义层的Python版本完全匹配。
内容的提问来源于stack exchange,提问作者BenBole
相关产品推荐
相关产品推荐

