我编写了一个包含许多模块的python包。模块在包中相互导入。 现在完成后我希望将我的包移到另一个包中作为子目录。但是我不能这样做,因为现在所有的导入都会出错,因为他们无法在新路径上找到模块。
例如 -
在模块my_package.a
中,我有:
x = 5
在模块my_package.b
中:
from my_package.a import x
print x
在我做之前:from my_package import b
,现在我希望from tools.my_package import b
,并获得相同的结果。
更改包逻辑路径的正确方法是什么,而不必将新路径添加到sys.path
?
答案 0 :(得分:1)
我会在内部使用相对导入:
from .a import x
如果您的模块是自包含的,那么如果它使用相对导入,您可以毫无问题地重新定位它。