这是一个简单的基于 SAM 模板的 Docker 容器部署。文件系统结构:
src/app.py
mymodule.py
在app.py中:
from .mymodule import myfunction
结果(调用时):
Unable to import module 'app': attempted relative import with no known parent package
删除点会导致:
Unable to import module 'app': No module named 'mymodule'
将本地目录添加到路径也没有帮助:
import os, sys
currentdir = os.path.dirname(os.path.abspath(__file__))
sys.path.append(currentdir)
现在我想这似乎是由于十亿次相对进口
的伟大答案中描述的限制造成的即app.py 作为脚本运行,而不是模块,并且脚本无法相对导入
上述答案中的解决方法都需要更改 Lambda 函数的构建和/或调用方式 - 问题是如何做到这一点?
将
__init__.py
文件添加到您的 src/ 文件夹(与您的 app.py 处于同一级别)
或者,如果您使用容器,请确保您的 Dockerfile 复制所有内容,而不仅仅是 app.py