是否有关于何时在Python中使用相对导入的规则或指南?我在Flask Web框架中一直看到它们一直在使用。搜索此主题时,我只会看到有关如何使用相对导入的文章,但不会看到为什么。
使用时有一些特别的好处:
from . import x
而不是:
from package import x
此外,我注意到在this问题上,答案提到相对进口是不受欢迎的。然而人们仍然继续使用它们。
答案 0 :(得分:19)
查看PEP 328's section on relative imports
理由似乎如下:
提出了几个用例,其中最重要的是能够重新排列大包的结构,而无需编辑子包。另外,如果没有相对导入,包内的模块就不能轻易导入。