AWS Lambda导入awsgi模块失败求助:Runtime.ImportModuleError
解决AWS Lambda无法导入awsgi模块的问题
核心原因
Lambda Layer的Python依赖必须遵循特定目录结构,否则运行时无法识别模块。正确的路径是python/lib/python<版本号>/site-packages/(比如Python 3.9对应python/lib/python3.9/site-packages/),直接打包依赖根目录会导致模块找不到。
修复步骤
- 本地创建虚拟环境并安装依赖:
python3 -m venv lambda-env source lambda-env/bin/activate pip install aws-wsgi - 按Lambda Layer要求整理目录结构:
mkdir -p python/lib/python3.9/site-packages cp -r lambda-env/lib/python3.9/site-packages/* python/lib/python3.9/site-packages/替换
3.9为你的Lambda函数使用的Python版本 - 打包成压缩包:
zip -r awsgi-layer.zip python/ - 将压缩包上传至S3,重新创建或更新Lambda Layer,确保使用最新的包版本
- 确认Lambda函数已正确关联该Layer,且运行时Python版本与Layer中的版本一致
额外排查项
- 版本匹配:确保Layer的Python版本和Lambda运行时版本完全一致(如都是3.10,不能跨版本混用)
- 结构验证:解压Layer压缩包,检查
awsgi模块是否在python/lib/pythonX.X/site-packages/目录下 - Layer关联:在Lambda函数配置中确认Layer已添加,没有被误删除或版本选错
内容的提问来源于stack exchange,提问作者Amiteshwar
相关产品推荐
相关产品推荐

