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

如何在AWS Lambda中导入git子模块内的Python代码?

解决方案

报错原因

  • 导入语句存在语法错误,末尾多余的.导致路径识别异常
  • AWS Lambda控制台在线编辑仅支持单文件代码编写,你本地项目中的git子模块modelling文件夹并未同步到Lambda执行环境中
  • 子模块文件夹缺少Python包标识文件__init__.py,无法被识别为可导入的模块包

具体操作步骤

方案1:打包部署(推荐,适合正式环境)

  • 先在本地项目根目录执行命令拉取完整子模块内容:
    git submodule update --init --recursive
  • 在和app.py同级的modelling子模块根文件夹下,新建空的__init__.py文件,让Python可以将该文件夹识别为可导入的包
  • 修正导入语句,删除末尾多余的点:
    from modelling.modelling import mod_func
  • 选中项目根目录下的app.py和整个modelling文件夹,直接打包为zip压缩包(注意不要选中外层的项目根文件夹打包,否则Lambda会找不到入口文件)
  • 打开Lambda控制台,进入对应函数的「代码」标签页,选择「上传自」→「.zip文件」,上传刚才打包的压缩包即可

方案2:控制台在线编辑适配(仅适合临时测试)

  • 在Lambda控制台的代码编辑器中,右键点击文件列表区域,选择「新建文件夹」,命名为modelling
  • 进入modelling文件夹,新建两个文件:空的__init__.py,以及modelling.py,将你本地子模块中modelling.py的代码全部复制粘贴到该文件中
  • 回到app.py,修正导入语句为from modelling.modelling import mod_func,点击部署即可

CI/CD部署补充说明

如果是通过CI/CD流水线自动部署Lambda,需要在流水线的代码拉取步骤中配置子模块拉取参数,否则流水线默认不会拉取git子模块的内容,同样会触发导入报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:06:10