You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Lambda无法导入lambda_function模块问题咨询

解决AWS Lambda "Unable to import module 'lambda_function'" 报错

我之前也碰到过一模一样的坑!在线IDE里跑代码完全正常,一打包上传就报这个导入错误,折腾了好一阵才捋清楚几个核心排查方向,给你分享下:

1. 检查打包结构是否符合Lambda要求

Lambda要求你的lambda_function.py必须在压缩包的根目录,不能嵌套在子文件夹里。很多人踩坑是因为把整个项目文件夹打包了——比如本地项目是my-lambda-project/,里面放着lambda_function.py,结果打包成my-lambda-project.zip,解压后变成my-lambda-project/lambda_function.py,这就会导致Lambda找不到模块。

正确的打包方式:

  • 打开终端,进入存放lambda_function.py的目录
  • 执行打包命令:zip -r lambda-package.zip .
    这样压缩包里的根目录就直接包含lambda_function.py和所有依赖文件了。

2. 排查依赖包的兼容性

Lambda的运行环境是基于Amazon Linux的,如果你在Windows/Mac本地安装带C扩展的依赖(比如numpy、pandas、psycopg2这类),本地编译的二进制文件和Lambda环境不兼容,会间接导致模块导入失败。

解决办法:

  • 用Lambda层来管理依赖:把依赖打包成层,附加到函数上,避免本地编译的问题
  • 用Docker模拟Lambda环境安装依赖:拉取对应Python版本的Lambda镜像(比如public.ecr.aws/sam/build-python3.9),在容器里创建虚拟环境并安装依赖,再把依赖复制到项目目录打包

3. 确保文件权限正确

Linux系统下,Lambda执行时需要能读取你的代码文件和依赖包。如果打包时文件权限设置错误(比如只有所有者能读),Lambda就会因无法读取文件而报错。

打包前可以执行命令调整权限:

chmod 644 lambda_function.py
chmod -R 644 ./your-dependency-folder/

4. 确认依赖包的安装位置

如果用了虚拟环境,别直接打包venv文件夹!要把虚拟环境里site-packages的内容复制到项目根目录再打包:

cp -r venv/lib/python3.9/site-packages/* ./

这样依赖包就和lambda_function.py处于同一层级,Lambda才能正确导入。

小技巧

如果还是找不到问题,把你上传的Lambda压缩包下载下来解压,直接检查文件结构和内容——大部分情况下,一眼就能看出是结构不对还是依赖缺失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:16:22