在包中,有没有办法直接访问模块,而不是通过包名称?

时间:2015-09-29 17:31:42

标签: python module package

考虑包含文件mypackage__init__.pymodule_a.py的目录module_b.py

如果module_a想要访问module_b,则必须import mypackage.module_bimport module_b from mypackage。简单import module_b失败。

首先:为什么?

其次:这是一个问题吗?

第三:如果是,那么解决这个问题的最佳方式是什么?

1 个答案:

答案 0 :(得分:3)

Python 3使用绝对导入;任何不合格的名称都被视为顶级模块或包。

如果要从包中导入,请使用.相对包前缀; .是当前包,..父级等。

因此,从您的mypackage包中,您可以访问其他模块:

from . import module_b

请参阅Intra-package References section of the Python tutorialimport statement reference