【发布时间】:2017-06-17 05:13:47
【问题描述】:
将我的博客应用程序添加到 settings.py 的 INSTALLED_APPS 部分时,我收到 "ModuleNotFoundError: No module named 'blog'" 错误。我已经确定这与我在 INSTALLED_APPS 下添加“博客”应用程序的方式有关。当我从INSTALLED_APPS 中删除“博客”引用时,错误消失了。看起来Django 无法找到我的博客应用程序的目录?
我做了一件不同的事情,那就是使用:
python manage.py startapp blog /myproject
这里的区别是指定/myproject 目录而不是使用:
python manage.py startapp blog
这会将它放在根目录myproject 下。我想避免在根文件夹中添加应用程序目录,这样我就更有条理了。但看起来 Django 不喜欢这个,或者我在INSTALLED_APPS 部分没有正确引用这个?
我的项目目录如下:
myproject/
├── myproject
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-36.pyc
│ │ ├── settings.cpython-36.pyc
│ │ ├── urls.cpython-36.pyc
│ │ └── wsgi.cpython-36.pyc
│ ├── blog
│ │ ├── __init__.py
│ │ ├── admin.py
│ │ ├── apps.py
│ │ ├── migrations
│ │ │ └── __init__.py
│ │ ├── models.py
│ │ ├── tests.py
│ │ └── views.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── db.sqlite3
└── manage.py
在我的settings.py 中,我已经设置了我的应用程序blog:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
]
【问题讨论】:
-
因为你的应用在
my_project模块中,我相信你应该在INSTALLED_APPS中写my_project.blog而不是简单的blog。 -
谢谢你修复它。
-
我有同样的问题,如果它在管理部分正常工作,但是当我添加 my_project_name.blog 时出现问题
-
同意文森特,使用
my_project.blog有效。必须记住,这将根据manage.py所在的位置起作用。
标签: python django installation python-module