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

AWS Lambda报No module named 'surveys'导入错误排查求助

AWS Lambda Runtime.ImportModuleError 修复方案

一、打包规则/项目结构调整

  • 确认surveys目录下存在__init__.py文件(空文件即可),否则Python不会将该目录识别为可导入的模块包,这是最常见的遗漏点
  • 若surveys直接和lambda_function.py一起打包上传,二者必须都在压缩包的最顶层,不能嵌套在任意父目录中
  • 若你已将surveys下的.py文件移到压缩包根目录,需要同步修改lambda_function.py中的导入语句,删除surveys.前缀,比如原语句from surveys import common要改为import common
  • 若surveys模块放在Lambda Layer中,必须严格遵循Python Layer的目录规范:所有Python模块必须放在Layer压缩包的python/lib/python<你的运行时版本>/site-packages/路径下,比如Python3.9运行时对应的路径为python/lib/python3.9/site-packages/surveys/,直接将模块放在Layer根目录无法被Lambda识别

二、AWS配置项调整

  • Layer兼容配置匹配:确认你上传的Layer的「兼容运行时」和Lambda实际使用的Python版本完全一致,「兼容架构」和Lambda的架构配置(x86_64/arm64)完全匹配,否则Layer内的所有文件都不会被加载到运行环境中
  • 路径调试:你可以在lambda_function.py最开头加入以下代码,打印运行时的Python搜索路径,确认模块所在目录是否在搜索列表中:
import sys
print(sys.path)
  • 二进制依赖适配:pdftk、libgcj.so.10这类二进制文件放在Layer的bin/目录是合规的,但需要确保二进制文件的编译架构和Lambda运行架构一致,x86环境下编译的二进制无法在arm64架构的Lambda上运行

临时验证方案

你可以先不上传任何Layer,仅把surveys目录和lambda_function.py打包在同一个压缩包根目录,确认__init__.py存在后测试是否还报模块找不到的错误,排除Layer的影响后再添加pdftk相关依赖层。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:15:07