小编Bor*_*kov的帖子

AWS lambda python 多文件应用程序无法从另一个文件导入

我的 AWS lambda 项目具有以下结构:

module
  app.py
  b.py
Run Code Online (Sandbox Code Playgroud)

app.py是我的默认 aws lambda 函数lambda_handler,它工作正常。我决定将所有繁重的计算从它中提取出来以calc实现b.py.

然后,我将它导入到app.py

from module.b import calc
Run Code Online (Sandbox Code Playgroud)

现在,当我在本地运行它时sam local invoke Function --event events/event.json,它会引发一个错误:

{"errorType":"Runtime.ImportModuleError","errorMessage":"无法导入模块'app':没有名为'module'的模块"}

在我看来,当它准备运行代码时,它将文件移动到其他目录,因此导入中断。为了解决这个问题,我尝试使用相对导入:

from .b import calc
Run Code Online (Sandbox Code Playgroud)

但它也引发了一个错误:

{"errorType":"Runtime.ImportModuleError","errorMessage":"无法导入模块'app':尝试相对导入,没有已知的父包"}

如何在 aws lambda 上设置多文件 python 应用程序?

python amazon-web-services aws-lambda serverless

2
推荐指数
1
解决办法
2153
查看次数