Python Django说-没有名为';博客';
将我的博客应用添加到Python Django说-没有名为';博客';,python,django,installation,python-module,Python,Django,Installation,Python Module,将我的博客应用添加到settings.py的INSTALLED_APPS部分时,我收到“ModuleNotFoundError:没有名为'blog'的模块”错误。我已经确定这与我在已安装的应用程序下添加“博客”应用程序的方式有关。当我从已安装的应用程序中删除“blog”引用时,错误就会消失。看起来,Django无法找到我的博客应用程序的目录 我做了一件不同的事情,那就是使用: python manage.py startapp blog /myproject 这里的区别是指定/myprojec
settings.py的INSTALLED_APPS部分时,我收到“ModuleNotFoundError:没有名为'blog'的模块”
错误。我已经确定这与我在已安装的应用程序下添加“博客”应用程序的方式有关。当我从已安装的应用程序中删除“blog”引用时,错误就会消失。看起来,Django
无法找到我的博客应用程序的目录
我做了一件不同的事情,那就是使用:
python manage.py startapp blog /myproject
这里的区别是指定/myproject
目录而不使用:
python manage.py startapp blog
这将把它放在根目录下myproject
。我想避免在根文件夹中添加应用程序目录,这样我会更有条理。但看起来Django不喜欢这个,或者我在已安装的应用程序
部分没有正确引用这个
我的项目目录如下:
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中
我已经设置了我的应用程序博客
:
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'
您可以将/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',
因为你的应用程序在my_project
模块中,我认为你应该在INSTALLED_APPS
中编写my_project.blog
,而不是简单的blog
。谢谢你修复了它。如果它在管理部分正常工作,我也会遇到同样的问题,但在我添加我的_project\u名称时会遇到问题。blog没有任何问题与Vincent达成一致,使用my_project.blog
成功了。必须记住,这将根据manage.py
所在的位置工作。感谢您解决了这个问题,所以这里的教训是,如果使用非标准Django结构将包括应用程序的完整路径,我不会说您的目录结构不寻常。如果可以从shell运行import my_app
,则可以将其作为应用程序包含,这是正确的方法。模块和站点文件夹必须粘在一起