我在python中创建一个lambda函数。这是我项目的当前结构。
lambda/
|-- package_name/
| |-- __init__.py
| |-- lambda_function.py
| |-- a.py
| |-- utils.py
|
|-- tests/
| |-- __init__.py
| |-- test_main.py
|-- setup.py
|-- README
我想在test_main.py中导入lambda_function.py和a.py.
我试过了
from a import *
import a
from package_name import a
和其他一些人,但没有任何工作。
你能解释一下什么是正确的解决方案,为什么我尝试的实际上不起作用?
如果您的工作目录是lambda
,请尝试:
from package_name import a
有一些预先确定的地方,python将寻找包。通常工作目录就是其中之一。
见:https://leemendelowitz.github.io/blog/how-does-python-find-packages.html
我建议你阅读Python文档中的import
:
Python 3:https://docs.python.org/3/reference/import.html Python 2:https://docs.python.org/2/tutorial/modules.html
但您可以使用以下方法相对导入:import * from ../package_name/a
,import * from ../package_name/lambda_function
或者您需要将package_name
文件夹添加到sys.path
,然后在尝试时添加import * from a
。
可以使用以下命令添加到sys.path:
import sys
module_path = "the path to your package_name"
sys.path.insert(0, module_path)
from ..package_name.lambda_function.a import *
您尝试的操作无效,因为您要访问的文件位于不同的目录中。