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