python - 如何在 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 *
但它不起作用
即使在阅读了互联网对此的评论之后,我仍然对导入的工作方式有些迷茫。此外,我不确定我的项目文件结构(但我猜这是另一个主题)
解决方案
利用
# lambda_function.py files
from .a import *
from .utils import *
# a.py files
from .b import *
# b.py files
from .a import *
这将告诉从当前目录读取模块并导入所有函数、类、变量。
推荐阅读
- javascript - 如何在 Mac 上使用命令行将 SHP 转换为 TopoJSON
- javascript - 是否可以将元素 ref 从子功能组件传递到其父功能组件?
- postgresql - PostgreSQL:查询在带有变量的查询中没有结果数据的目的地
- vb.net - 在标签中显示来自 URL 的 Youtube 视图(如何?)VB
- python - 如何在 github 项目的 Python 中解决这个 librosa 错误?
- ruby-on-rails - 如果块是内联或多行给出的,则 Rails 输出不同
- histogram - 为什么 distplot 中的 kde 看起来像一个正弦波?
- integration - 如何将 Zoho CRM 与 Messagebird 集成
- swift - SwiftUI - 检测 TabView 上的点击以滚动到列表顶部
- kubernetes - 卷写入权限