给出以下文件结构(示例)
library_project\
|- __init__.py
|
|--- utils_a\
| |- __init__.py
| |- util_functions_a.py
|
|--- utils_b\
| |- __init__.py
| |
| |--- utils_b_1\
| | |- __init__.py
| | |- util_function_b1.py
| |
| |--- utils_b_2\
| | |- __init__.py
| | |- util_function_b2.py
和第二个项目
other_project\
|- __init__.py
|- run.py
在run.py
中from library_project.utils_b.util_function_b2 import do_something
do_something()
util_function_b2.py
如何使用util_functions_a.py
中的函数?
我发现的相关导入的所有示例都假设导入的包是兄弟包(例如https://docs.python.org/2/tutorial/modules.html#intra-package-references)而不是2级
答案 0 :(得分:1)
import
statement允许您使用任意数量的.
点来引用树上的包。
.
指的是同一个包; utils_b_2
。..
指的是同一个共享父包utils_b
...
指的是library_project
从util_function_b2
,您可以参考util_functions_a
3点:
from ...utils_a.util_functions_a import somename
答案 1 :(得分:-1)
根据目录结构,导入" util_function_b2.py"
from library_project.urils_b.utils_b_2.until_function_b2 import *
util_function_b2.py如何使用util_functions_a.py -
中的函数您可以将项目添加到python路径。
sys.path.append('/path/to/library_project/')
然后,
from from library_project.utils_a imoprt *
或者有一种方法可以使用"。"
进行相对寻址