AWS Lambda运行报错Unable to import module 'lambda_function'如何解决
AWS Lambda Python部署ImportModuleError报错排查方案
这个报错的核心是Lambda运行时无法定位到入口模块lambda_function.py,可按以下优先级逐一排查:
1. 部署包结构校验
- 打包时不能直接压缩外层的
lambdatest文件夹,需进入lambdatest目录内部,全选lambda_function.py和所有依赖文件后再打包。如果压缩包解压后第一层是lambdatest文件夹,Lambda无法读取到文件夹内的入口文件,会直接触发该报错。 - 你从
venv/lib/python3.9/site-packages复制的是各个依赖包的独立文件夹(例如requests、numpy等),需要直接放到压缩包根目录与lambda_function.py平级,不要套入额外的packages子文件夹,否则Python导包路径不匹配会导致依赖导入失败,连带触发模块找不到的报错。
2. 文件属性校验
- 确认入口文件名严格为全小写的
lambda_function.py,不存在大小写错误、拼写遗漏(例如误写为Lambda_function.py、lambda_funtion.py)。 - 确认
lambda_function.py的文件权限至少为644,本地Linux/macOS环境打包时不要设置仅当前用户可读取的高权限,Lambda运行时无权限读取文件也会返回模块不存在的错误。
3. 运行时配置校验
- 确认Lambda控制台配置的运行时版本为Python 3.9,与你本地依赖编译使用的Python版本完全一致,版本不匹配会导致C扩展类依赖导入失败,连带触发模块导入错误。
- 确认Lambda的处理程序配置为
lambda_function.lambda_handler,对应lambda_function.py文件内的lambda_handler入口函数,配置拼写错误会直接触发报错。
4. 依赖兼容性校验
- 如果你的依赖包含C扩展(例如pandas、numpy、opencv等),不要直接使用本地Windows/macOS环境下venv安装的包,这类包是适配本地系统编译的,无法在Lambda的Amazon Linux 2运行环境中加载,会触发导包失败。可使用Docker模拟Lambda运行环境安装依赖后再打包。
内容的提问来源于stack exchange,提问作者stubbsy
相关产品推荐
相关产品推荐

