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

Python版AWS Lambda函数报错:无法导入模块‘index’,本地正常云端运行失败

排查AWS Lambda "Unable to import module 'index'" 错误

嘿,我来帮你搞定这个问题——我之前也碰到过好几次:本地跑起来顺得不行,一上传到Lambda就报导入错误,大概率是这几个细节没处理到位:

1. 入口文件与Lambda配置不匹配

Lambda默认的处理程序是index.lambda_handler,意思是它会在zip包的根目录找index.py文件,然后调用里面的lambda_handler函数。

  • 先检查你的代码文件名是不是index.py,如果不是,要么把文件名改成index.py,要么去Lambda控制台的「配置」→「常规配置」→「处理程序」里,改成你的文件名+函数名(比如my_script.my_custom_handler)。

2. 第三方依赖没打包进zip包

如果你的POST请求用到了requests这类Python标准库之外的包,本地环境装了但Lambda默认不带,就会导致导入失败。
解决步骤:

  1. 本地新建一个空文件夹,把你的index.py放进去;
  2. 打开终端进入这个文件夹,执行pip install requests -t .(把requests换成你实际用的依赖包);
  3. 选中文件夹里的所有内容(包括index.py、生成的依赖文件夹),直接压缩成zip包——注意不要把整个文件夹打包,要让文件都在zip的根目录里。
    另外也可以用Lambda层来管理依赖,后续更新会更方便:把依赖单独打包成层上传,再在Lambda函数里关联这个层就行。

3. 打包的目录层级错了

很多人踩过这个坑:把包含index.py的文件夹直接压缩,结果Lambda解压后,index.py藏在子文件夹里,自然找不到。

  • 正确操作:打开存放index.py的文件夹,选中里面的所有文件和文件夹,右键压缩成zip,确保解压后index.py直接在根目录。

4. Python版本不兼容

本地用的Python版本和Lambda配置的版本不一致,也可能导致导入问题(比如某些包在不同版本里结构有变化)。

  • 先在本地终端执行python --version确认版本;
  • 去Lambda控制台的「配置」→「常规配置」→「运行时」,把Python版本改成和本地一致的(比如本地用3.9,Lambda也选3.9)。

5. 文件权限问题(少见但可能)

如果zip包中的文件权限设置不对,Lambda运行时无法读取,也会报导入错误。

  • 打包前在本地给文件设置可读权限:终端执行chmod 644 index.py,依赖文件夹执行chmod 755 -R ./requests(替换成你的依赖文件夹名),然后再打包。

如果还是不行,你可以把打包好的zip解压出来,模拟Lambda的环境结构,确认index.py和依赖都在根目录,而且本地能正常导入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:53:09