移动python包而不会弄乱内部导入

时间:2016-08-28 15:55:47

标签: python import packages

我编写了一个包含许多模块的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

1 个答案:

答案 0 :(得分:1)

我会在内部使用相对导入:

from .a import x

如果您的模块是自包含的,那么如果它使用相对导入,您可以毫无问题地重新定位它。