Python包似乎被错误地导入为模块

时间:2013-08-09 17:39:36

标签: python django models python-import

我在Django网站上导入了一个名为shared的我的软件包。此软件包是一个已安装的应用程序,但是当我尝试使用它访问其models模块时,会抛出以下异常:

AttributeError: 'module' object has no attribute 'models'

我对此感到疯狂!其余的包以相同的方式导入,并且不会导致任何问题。此程序包包含__init__.py

例如,在最简单的情况下,它也会失败并出现相同的错误:

import shared
print shared.models

如果我使用from shared.models import Foo它可行,但我尝试这样做是为了避免循环依赖。

有人对此有任何想法吗?

1 个答案:

答案 0 :(得分:1)

问题是import shared不导入子模块,但from shared.models import FOO确实导入了所有父模块。您可以在__init__.py中导入模型,以便它与import shared一起导入,或者您可以在导入共享后专门导入shared.models。

shared/__init__.py:
    import models

import shared
print shared.models.FOO

import shared
import shared.models
print shared.models.FOO