Django导入模块:无法按名称导入模块

时间:2013-09-23 18:19:43

标签: python django

我的django应用程序文件夹中有子目录,每个我都试图调用一个模块。我遇到的问题是我能够使用*而不是名称导入模块,这会产生错误“异常值:无法导入名称[我的模块]”

from foo import Bar # throws error
from foo import * # works

我不知道我的settings.py上是否遗漏了任何内容,但我肯定已将app目录包含在我的INSTALLED_APPS中,并且每个目录上都有 init .py。我还试图检查我的app文件夹是否包含在python路径中,并且它已包含在内。

任何帮助将不胜感激。提前谢谢

3 个答案:

答案 0 :(得分:2)

我希望你在思考Java。在Python中,您可以按模块导入内容,而不是类名。因此,如果目录foo包含定义类bar.py的文件Bar,则必须执行from foo.bar import Bar而不是 from foo import Bar

答案 1 :(得分:0)

查看我的目录后,我发现我的文件与我的app / Foo同名。删除后,它开始工作。

Foo/
 - Bar.py
Process/
 - Foo.py # deleted this
 - views.py
来自Foo导入栏的#p>#Foo.py覆盖了我试图调用的app / Foo

感谢您的回复!

答案 2 :(得分:0)

如果这是在Django中,请尝试做 来自。进口表格 来自。导入模型 来自。导入视图

这应该可以解决问题。 除此之外,首先请确保目录中有一个 init .py文件。