AWS Lambda Python - 如何将模块从本地文件导入到 app.py

问题描述 投票:0回答:1

这是一个简单的基于 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 函数的构建和/或调用方式 - 问题是如何做到这一点?

python
1个回答
2
投票

__init__.py
文件添加到您的 src/ 文件夹(与您的 app.py 处于同一级别)

或者,如果您使用容器,请确保您的 Dockerfile 复制所有内容,而不仅仅是 app.py

© www.soinside.com 2019 - 2024. All rights reserved.