首页 > 解决方案 > 如何在 lambda 项目中正确导入 python 中的模块

问题描述

我正在 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 *

但它不起作用

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

标签: pythonlambdapackagepython-import

解决方案


利用

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

# a.py files
from .b import *

# b.py files
from .a import *

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


推荐阅读