You need to enable JavaScript to run this app. AWS Lambda安装PyProj作为层后导入模块失败问题求助
优惠活动
大模型
产品
解决方案
定价
更多

AWS Lambda安装PyProj作为层后导入模块失败问题求助

问题根源
  • 最核心的原因是Lambda Python层的目录结构不符合官方要求:AWS Lambda Python运行时加载层时,只会从层压缩包内的python/目录下搜索第三方模块,你当前打包时将依赖放入了pyproj/目录,Lambda运行时无法识别该路径下的模块。
  • 其他可能的诱因:
    • 打包使用的Python版本和Lambda函数的运行时版本不一致
    • 打包环境的CPU架构(如Mac M系列的arm64)和Lambda函数配置的架构不匹配
    • 拷贝依赖时遗漏了lib目录下的安装文件,仅拷贝了lib64目录内容
修复步骤
  1. 替换原有打包流程为符合Lambda规范的操作,代码如下:
mkdir folder
cd folder
virtualenv v-env
source ./v-env/bin/activate
# 需保证此处Python版本和你的Lambda函数运行时版本完全一致
pip3 install pyproj
deactivate
# 必须创建python目录,为Lambda固定识别的模块加载路径
mkdir python
cd python
# 同时拷贝lib、lib64下的依赖避免文件遗漏
cp -r ../v-env/lib64/python3.6/site-packages/* .
cp -r ../v-env/lib/python3.6/site-packages/* .
cd ..
zip -r pyproj_layer.zip python 
# 发布层时指定和你函数匹配的Python运行时、兼容架构
aws lambda publish-layer-version --layer-name pyproj --zip-file fileb://pyproj_layer.zip --compatible-runtimes python3.6 --compatible-architectures "x86_64" "arm64"
  1. 校验Lambda函数配置:
  • 确认函数的Python运行时版本和打包使用的Python版本完全一致
  • 确认函数的CPU架构和你发布层时指定的兼容架构匹配
  1. 可选验证:如果修复后仍有问题,可以在函数代码中加入以下代码打印模块搜索路径,确认/opt/python已被包含:
import sys
print(sys.path)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 06:45:02