我的django应用程序文件夹中有子目录,每个我都试图调用一个模块。我遇到的问题是我能够使用*而不是名称导入模块,这会产生错误“异常值:无法导入名称[我的模块]”
from foo import Bar # throws error
from foo import * # works
我不知道我的settings.py上是否遗漏了任何内容,但我肯定已将app目录包含在我的INSTALLED_APPS中,并且每个目录上都有 init .py。我还试图检查我的app文件夹是否包含在python路径中,并且它已包含在内。
任何帮助将不胜感激。提前谢谢
答案 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文件。