Django 高级教程:成功安装自己的包后尝试 运行 服务器或迁移应用程序时出错
Django Advanced Tutorial: Error when trying run server or migrate app after successfully installing own package
我正在学习高级 Django 教程,并成功地将我的投票应用程序打包到 mysite 目录之外的另一个目录中。我 运行
pip install --user django-polls/dist/django-polls-0.1.tar.gz
在我的 django-polls 应用程序所在的目录中并设法成功安装它。但是,当我尝试在 mysite
目录中 运行 python manage.py runserver
时,我在终端上收到以下消息:
Traceback (most recent call last):
File "manage.py", line 15, in <module>
execute_from_command_line(sys.argv)
File "/Users/*USER*/django/django/core/management/__init__.py", line 381, in execute_from_command_line
utility.execute()
File "/Users/*USER*/django/django/core/management/__init__.py", line 357, in execute
django.setup()
File "/Users/*USER*/django/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/Users/*USER*/django/django/apps/registry.py", line 89, in populate
app_config = AppConfig.create(entry)
File "/Users/*USER*/django/django/apps/config.py", line 116, in create
mod = import_module(mod_path)
File "/Users/*USER*/anaconda3/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'polls.apps'
我尝试了 运行ning python manage.py migrate
并得到了相同的消息。有人可以解释这里发生了什么吗?我正在 运行安装最新版本的 Django。
更新:这些是我 settings.py
上安装的应用程序
INSTALLED_APPS = [
'polls.apps.PollsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
我尝试使用
INSTALLED_APPS = [
'polls', ...
但这只会给出另一个错误,No module named 'polls.urls'
编辑 2:按照下面的要求是我的目录架构,我将 django-polls
和 mysite
文件夹移动到父目录 django-tutorial
中。然而,当 运行 命令 python manage.py runserver
它回复: /usr/bin/python: No module named django
然后我使用 pip
重新安装了 Django 并重新安装了 django-polls
模块。这似乎解决了这个问题。我现在可以 运行 python manage.py runserver
命令并像以前一样获取我的项目 运行ning。我不知道 Django 已从 put 设法取回的路径中删除 运行ning。谢谢大家的帮助!
django-tutorial
├── django-polls
│ ├── LICENSE
│ ├── MANIFEST.in
│ ├── README.rst
│ ├── dist
│ │ └── django-polls-0.1.tar.gz
│ ├── django_polls.egg-info
│ │ ├── PKG-INFO
│ │ ├── SOURCES.txt
│ │ ├── dependency_links.txt
│ │ └── top_level.txt
│ ├── docs
│ ├── polls
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-36.pyc
│ │ │ ├── admin.cpython-36.pyc
│ │ │ ├── apps.cpython-36.pyc
│ │ │ ├── models.cpython-36.pyc
│ │ │ ├── tests.cpython-36.pyc
│ │ │ ├── urls.cpython-36.pyc
│ │ │ └── views.cpython-36.pyc
│ │ ├── admin.py
│ │ ├── apps.py
│ │ ├── migrations
│ │ │ ├── 0001_initial.py
│ │ │ ├── __init__.py
│ │ │ └── __pycache__
│ │ │ ├── 0001_initial.cpython-36.pyc
│ │ │ └── __init__.cpython-36.pyc
│ │ ├── models.py
│ │ ├── static
│ │ │ └── polls
│ │ │ ├── images
│ │ │ │ └── background.gif
│ │ │ └── style.css
│ │ ├── templates
│ │ │ └── polls
│ │ │ ├── detail.html
│ │ │ ├── index.html
│ │ │ └── results.html
│ │ ├── tests.py
│ │ ├── urls.py
│ │ └── views.py
│ └── setup.py
└── mysite
├── db.sqlite3
├── django-polls
│ └── setup.py
├── manage.py
├── mysite
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-36.pyc
│ │ ├── __init__.cpython-37.pyc
│ │ ├── settings.cpython-36.pyc
│ │ ├── settings.cpython-37.pyc
│ │ ├── urls.cpython-36.pyc
│ │ ├── urls.cpython-37.pyc
│ │ ├── wsgi.cpython-36.pyc
│ │ └── wsgi.cpython-37.pyc
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── polls
│ └── views.py
└── templates
└── admin
└── base_site.html
你的 settings.py 长什么样?您是否在 INSTALLED_APPS 中添加了民意调查?
INSTALLED_APPS = [
'polls',
....
]
我正在学习高级 Django 教程,并成功地将我的投票应用程序打包到 mysite 目录之外的另一个目录中。我 运行
pip install --user django-polls/dist/django-polls-0.1.tar.gz
在我的 django-polls 应用程序所在的目录中并设法成功安装它。但是,当我尝试在 mysite
目录中 运行 python manage.py runserver
时,我在终端上收到以下消息:
Traceback (most recent call last):
File "manage.py", line 15, in <module>
execute_from_command_line(sys.argv)
File "/Users/*USER*/django/django/core/management/__init__.py", line 381, in execute_from_command_line
utility.execute()
File "/Users/*USER*/django/django/core/management/__init__.py", line 357, in execute
django.setup()
File "/Users/*USER*/django/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/Users/*USER*/django/django/apps/registry.py", line 89, in populate
app_config = AppConfig.create(entry)
File "/Users/*USER*/django/django/apps/config.py", line 116, in create
mod = import_module(mod_path)
File "/Users/*USER*/anaconda3/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'polls.apps'
我尝试了 运行ning python manage.py migrate
并得到了相同的消息。有人可以解释这里发生了什么吗?我正在 运行安装最新版本的 Django。
更新:这些是我 settings.py
INSTALLED_APPS = [
'polls.apps.PollsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
我尝试使用
INSTALLED_APPS = [
'polls', ...
但这只会给出另一个错误,No module named 'polls.urls'
编辑 2:按照下面的要求是我的目录架构,我将 django-polls
和 mysite
文件夹移动到父目录 django-tutorial
中。然而,当 运行 命令 python manage.py runserver
它回复: /usr/bin/python: No module named django
然后我使用 pip
重新安装了 Django 并重新安装了 django-polls
模块。这似乎解决了这个问题。我现在可以 运行 python manage.py runserver
命令并像以前一样获取我的项目 运行ning。我不知道 Django 已从 put 设法取回的路径中删除 运行ning。谢谢大家的帮助!
django-tutorial
├── django-polls
│ ├── LICENSE
│ ├── MANIFEST.in
│ ├── README.rst
│ ├── dist
│ │ └── django-polls-0.1.tar.gz
│ ├── django_polls.egg-info
│ │ ├── PKG-INFO
│ │ ├── SOURCES.txt
│ │ ├── dependency_links.txt
│ │ └── top_level.txt
│ ├── docs
│ ├── polls
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-36.pyc
│ │ │ ├── admin.cpython-36.pyc
│ │ │ ├── apps.cpython-36.pyc
│ │ │ ├── models.cpython-36.pyc
│ │ │ ├── tests.cpython-36.pyc
│ │ │ ├── urls.cpython-36.pyc
│ │ │ └── views.cpython-36.pyc
│ │ ├── admin.py
│ │ ├── apps.py
│ │ ├── migrations
│ │ │ ├── 0001_initial.py
│ │ │ ├── __init__.py
│ │ │ └── __pycache__
│ │ │ ├── 0001_initial.cpython-36.pyc
│ │ │ └── __init__.cpython-36.pyc
│ │ ├── models.py
│ │ ├── static
│ │ │ └── polls
│ │ │ ├── images
│ │ │ │ └── background.gif
│ │ │ └── style.css
│ │ ├── templates
│ │ │ └── polls
│ │ │ ├── detail.html
│ │ │ ├── index.html
│ │ │ └── results.html
│ │ ├── tests.py
│ │ ├── urls.py
│ │ └── views.py
│ └── setup.py
└── mysite
├── db.sqlite3
├── django-polls
│ └── setup.py
├── manage.py
├── mysite
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-36.pyc
│ │ ├── __init__.cpython-37.pyc
│ │ ├── settings.cpython-36.pyc
│ │ ├── settings.cpython-37.pyc
│ │ ├── urls.cpython-36.pyc
│ │ ├── urls.cpython-37.pyc
│ │ ├── wsgi.cpython-36.pyc
│ │ └── wsgi.cpython-37.pyc
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── polls
│ └── views.py
└── templates
└── admin
└── base_site.html
你的 settings.py 长什么样?您是否在 INSTALLED_APPS 中添加了民意调查?
INSTALLED_APPS = [
'polls',
....
]