考虑以下简单的文件夹结构:
root
Package1
x.py
y.py
Package2
z.py
Examples
main.py
现在我们的要求是:
-
x、 py需要导入y.py
-
z、 py需要导入y.py
-
主要的py需要导入y.py和z.py
以下是工作原理:
x、 py公司
import y
def x():
y()
y、 py公司
def y():
pass
z、 py公司
import package1.y as y
def z():
y.y()
主要的py公司
import sys
from os import path
sys.path.append( path.dirname( path.dirname( path.abspath(__file__) ) ) )
import package1.y as y
import package2.z as z
y.y()
z.z()
问题:
-
这是在Python 3中设置导入的最佳且推荐的方法吗?
-
我真的不喜欢改变
sys.path
在里面
main
因为它强烈地约束了关于包位置的假设
在…内
代码文件。有什么办法吗?
-
我也真的不喜欢多余的
as y
参与
import package1.y as y
.有什么办法吗?