我是在之前发布的这个问题的基础上工作的:模块导入自身
本质上,这个问题已经解决了,但在"modulename.py"文件中,定义了一个类,其中包含一个init函数和一个ui函数。在课堂内,任何一行的形式:
import submodule
功能会很好。然而
import submodule.subsubmodule
或
import subsubmodule
将产生ImportError。
所有子模块和子模块都有一个
__init__.py
文件。
如果一个包中有多个同名模块,就会经常发生这种情况。
例如,考虑:
mypkg/
__init__.py
toplevel.py
mypkg.py
如果toplevel.py
文件调用import mypkg.mypkg
,它实际上将导入mypkg.py
文件,而不是包。
您可以通过将from __future__ import absolute_import
作为toplevel.py
中的第一行来解决此问题,这将强制它导入顶级包。
或者,您可以在toplevel.py
中使用from . import mypkg
,这将显式导入mypkg.py
文件。