python - 如何在 lambda 项目的 python 中正确导入模块

标签 python lambda package python-import

我正在用 Python 编写一个 lambda 函数。 这是我项目的当前结构。

lambda/
|-- datas/
|   |-- d.json
|
|-- package_name/
|   |-- __init__.py
|   |-- lambda_function.py # this is using d.json
|   |-- a.py # this is some classes used on lambda_function
|   |-- b.py # this is some basic time functions that a.py need
|   |-- utils.py
|
|-- tests/
|   |-- __init__.py
|   |-- test_main.py
|-- setup.py
|-- README

我有一些导入问题。

# lambda_function.py files
from a import *
from utils import *

# a.py files
from b import *

# b.py files
from a import *

它在本地工作,但在 aws lambda 控制台中不工作。为了让它在 aws lambda 控制台中工作,我需要更改它:

# lambda_function.py files
from package_name.a import *

所以我的第一个问题是:为什么?

我的第二个问题是:如果我想在 tests/tests_main.py 中导入 package_name/a.py,我应该怎么做?

我试过了

from a import *
from package_name import *

但是没用

我仍然对导入的工作方式有点迷茫,即使在阅读了互联网上的相关内容之后也是如此。 此外,我不确定我的项目文件结构(但我猜这是另一个主题)

最佳答案

使用

# lambda_function.py files
from .a import *
from .utils import *

# a.py files
from .b import *

# b.py files
from .a import *

这将告诉我们从当前目录读取模块并导入所有 函数、类、变量。

关于python - 如何在 lambda 项目的 python 中正确导入模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55609885/

相关文章:

python - Django 1.7,动态管理表单

python - 如何使用 tkFileDialog.askdirectory 的输出来填充 tkinter 输入框

c# - Lambda 到表达式树的转换

r - Debian 上的 R 中未加载依赖包

package - 导入类时找不到类异常 : Haxe (With OpenFL + Flixel libraries)

python - Django - 同一查询中的 objects.values() 和 prefetch_related()

python - 出于某种原因,我无法导入 office365.sharepoint.file

c++ - lambda 捕获的 const int 变量的值类别

c# - lambda 表达式中的枚举的编译方式不同;重载分辨率改进的结果?

windows-installer - 使用 WIX 卸载现有应用程序