0

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

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

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

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

4

3 回答 3

2

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

于 2013-09-23T18:23:34.177 回答
0

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

Foo/
 - Bar.py
Process/
 - Foo.py # deleted this
 - views.py

from Foo import Bar #Foo.py 覆盖了我试图调用的 app/Foo

感谢您的所有回复!

于 2013-09-23T19:24:33.620 回答
0

如果这是在 django 中,请尝试从 . 从 导入表格。从导入模型。导入视图

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

于 2019-04-09T05:28:55.877 回答