【发布时间】:2023-03-28 10:45:01
【问题描述】:
我的django项目的结构是:
project
book (an app)
__init__.py
views.py
models.py
urls.py
...
api (an app)
__init__.py
problem.py
book (another app for REST API)
__init__.py
views.py
urls.py
...
当我在 api/problem.py 中尝试“from book.models import *”时,django 说“ImportError: No module named models”。我认为这是因为它尝试导入不存在的“api/book/models.py”。如何从根文件夹导入模块?谢谢。
【问题讨论】:
-
不要使用
import *,它会产生冲突。只进口你需要的东西。首先确保您需要导入的每个文件夹都存在__init__。api不需要单独的应用程序。只需在book中创建api.py(以及您打算创建的所有其他应用程序都需要公共api。 -
其实我很困惑。您想从哪个
models导入?第一个book的 models.py 还是api/book/<models.py>?如果是后一种情况,是的,您肯定缺少模型。但是,如果您无法从第一种情况导入,请确保__init__存在并尝试从project.book.models import some_class导入,因为您观察到它正在尝试导入本地图书版本。 -
第一种情况。 project/book/ 中有一个 init.py,当我使用“python manage.py shell”时,我可以“from book.models import *”,但在project/api/problem 中不能。 py。仍然需要帮助,谢谢!
-
你能编辑你的帖子并告诉我们所有必要的文件吗(包括
__init__.py?我觉得奇怪from project.book.models import some_class不起作用。 -
好的。项目文件夹中没有 init.py。
标签: python django import importerror