Django说 - 没有名为' blog'

时间:2017-01-31 16:54:52

标签: python django installation python-module

将我的博客应用添加到"ModuleNotFoundError: No module named 'blog'"的INSTALLED_APPS部分时,出现settings.py错误。我已经确定它与我添加"博客"的方式有关。 INSTALLED_APPS下的应用程序。当我删除'博客'来自INSTALLED_APPS错误的引用消失了。看起来Django无法找到我的博客应用程序的目录?

我做了一件不同的事情就是使用:

python manage.py startapp blog /myproject

这里的区别是指定/myproject目录而不使用:

python manage.py startapp blog

将它放在根目录myproject下。我想避免在根文件夹中添加app目录,这样我就能更有条理。但看起来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',
]

3 个答案:

答案 0 :(得分:4)

Django需要能够导入您的应用程序,通常这意味着包括相对于根目录'myproject.blog'的完整路径。

您可以将<full_path_to_your_project>/myproject/myproject添加到PYTHONPATH,以便导入blog,但我不建议

答案 1 :(得分:3)

目录结构不常见。更常见的是,将您的应用程序命名为博客的那个将是

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

答案 2 :(得分:0)

我通常将配置路径添加到已安装的应用程序中,以避免出现此问题。因此,已安装的应用程序将如下所示:

NSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog,apps.BlogConfig',