Django 说 - 没有名为 'blog' 的模块
Django says - No module named 'blog'
将我的博客应用程序添加到 settings.py
的 INSTALLED_APPS 部分时出现 "ModuleNotFoundError: No module named 'blog'"
错误。我确定这与我在 INSTALLED_APPS 下添加 "blog" 应用程序的方式有关。当我从 INSTALLED_APPS
中删除 'blog' 引用时,错误消失了。 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',
]
目录结构异常。更常见的是,与您的应用程序相匹配的名为 blog 的是
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
Django 需要能够导入您的应用程序,通常这意味着包括相对于根目录的完整路径 'myproject.blog'
。
您可以将 <full_path_to_your_project>/myproject/myproject
添加到 PYTHONPATH
以便您可以导入 blog
,但我不推荐它
我通常会在已安装的应用程序中添加配置路径来避免这个问题。所以安装的应用程序看起来像这样:
NSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog,apps.BlogConfig',
我的问题是通过在我的项目的 settings.py 中以下面的格式添加应用程序的路径来解决的
INSTALLED_APPS = [
'blog.apps.BlogConfig', # <app_name>.apps.<class_name>
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles', ]
我有一个类似的问题。结果我已经在 settings.py 之前注册了我的应用程序 运行 'python manage.py startapp #myapp.
将我的博客应用程序添加到 settings.py
的 INSTALLED_APPS 部分时出现 "ModuleNotFoundError: No module named 'blog'"
错误。我确定这与我在 INSTALLED_APPS 下添加 "blog" 应用程序的方式有关。当我从 INSTALLED_APPS
中删除 'blog' 引用时,错误消失了。 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',
]
目录结构异常。更常见的是,与您的应用程序相匹配的名为 blog 的是
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
Django 需要能够导入您的应用程序,通常这意味着包括相对于根目录的完整路径 'myproject.blog'
。
您可以将 <full_path_to_your_project>/myproject/myproject
添加到 PYTHONPATH
以便您可以导入 blog
,但我不推荐它
我通常会在已安装的应用程序中添加配置路径来避免这个问题。所以安装的应用程序看起来像这样:
NSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog,apps.BlogConfig',
我的问题是通过在我的项目的 settings.py 中以下面的格式添加应用程序的路径来解决的
INSTALLED_APPS = [
'blog.apps.BlogConfig', # <app_name>.apps.<class_name>
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles', ]
我有一个类似的问题。结果我已经在 settings.py 之前注册了我的应用程序 运行 'python manage.py startapp #myapp.