0

我正在导入一个shared在 Django 站点中调用的包。这个包是一个已安装的应用程序,但是当我尝试使用它访问它的models模块时,会引发以下异常:

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

我要疯了!其余的包以相同的方式导入,不会引起任何问题。这个包有__init__.py.

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

import shared
print shared.models

如果我使用from shared.models import Foo它可以工作,但我试图这样做以避免循环依赖。

有人对此有任何想法吗?

4

1 回答 1

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
于 2013-08-09T17:51:43.860 回答