在包中,是否有一种方法可以直接访问模块,而不是通过包名



假设目录mypackage包含__init__.pymodule_a.pymodule_b.py三个文件。

如果module_a想要访问module_b,它必须访问import mypackage.module_bimport module_b from mypackage。只是import module_b失败了。

首先:为什么?

第二,这是个问题吗?

第三:如果是,最好的处理方法是什么?

Python 3使用绝对导入;任何非限定名都被视为顶级模块或包。

如果你想从包内导入,使用.相对包前缀;.是当前包,..是父包,以此类推。

所以从你的mypackage包中,你可以访问其他模块:

from . import module_b

请参阅Python教程的Intra-package References部分和import语句参考。

最新更新