我正在用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 *
但这不起作用
即使阅读了互联网对此有何评论,我仍然对导入的工作方式有些失落。 而且,我不确定我的项目文件结构(但是我猜这是另一个主题)
答案 0 :(得分:1)
使用
# lambda_function.py files
from .a import *
from .utils import *
# a.py files
from .b import *
# b.py files
from .a import *
这将告诉您从当前目录读取模块并导入所有 函数,类,变量。
答案 1 :(得分:0)
您可以尝试将当前的工作目录路径添加到python库路径
import sys
sys.path.append('../')