Python子包不可导入

时间:2013-12-19 19:00:17

标签: python import

我正在根据此前发布的问题开展工作: module importing itself

本质上,该问题已解决,但在“modulename.py”文件中,定义了一个类,其中包含init函数和ui函数。在课堂内,任何形式的行:

import submodule

功能就好了。然而..

import submodule.subsubmodule

import subsubmodule

会产生ImportError。

所有子模块和子子模块都有

__init__.py

文件。

1 个答案:

答案 0 :(得分:0)

如果包中有多个具有相同名称的模块,通常会发生这种情况。

例如,考虑:

mypkg/
  __init__.py
  toplevel.py
  mypkg.py

如果toplevel.py文件调用import mypkg.mypkg,它实际上会导入mypkg.py文件而该软件包。

您可以通过在from __future__ import absolute_import中添加toplevel.py作为第一行来解决此问题,这将强制它导入顶级包。

或者,您可以在from . import mypkg中使用toplevel.pymypkg.py将明确导入{{1}}文件。