Нет модуля с именем "polls.apps.PollsConfigdjango"; Учебник по проекту Django 2
Итак, я следил за инструкциями здесь https://docs.djangoproject.com/en/1.9/intro/tutorial02/, и я дошел до того шага, на котором я должен запускать эту команду:
python manage.py makemigrations polls
Когда я запустил его, я получаю эту ошибку:
python manage.py makemigrations polls
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 2218, in_find_and_load_unlocked
AttributeError: 'module' object has no attribute '__path__'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/home/tgumm/pythonenv/tutorial/lib/python3.4/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
utility.execute()
File "/home/tgumm/pythonenv/tutorial/lib/python3.4/site-packages/django/core/management/__init__.py", line 327, in execute
django.setup()
File "/home/tgumm/pythonenv/tutorial/lib/python3.4/site-packages/django/__init__.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/tgumm/pythonenv/tutorial/lib/python3.4/site-packages/django/apps/registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "/home/tgumm/pythonenv/tutorial/lib/python3.4/site-packages/django/apps/config.py", line 116, in create
mod = import_module(mod_path)
File "/home/tgumm/pythonenv/tutorial/lib/python3.4/importlib/__init__.py", line 109, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2212, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
File "<frozen importlib._bootstrap>", line 2237, in _find_an``d_load
File "<frozen importlib._bootstrap>", line 2221, in _find_and_load_unlocked
ImportError: No module named 'polls.apps.PollsConfigdjango'; 'polls.apps' is not a package
Вот мои модели:
from django.db import models
# Create your models here.
from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
Ответы
Ответ 1
Первая проблема - это предупреждение в трассировке:
No module named 'polls.apps.PollsConfigdjango'
Это означает, что вам не хватает запятой после 'polls.apps.PollsConfig
в настройке INSTALLED_APPS
. Это должно быть:
INSTALLED_APPS = (
...
'polls.apps.PollsConfig',
'django....',
...
)
Вторая проблема - предупреждение 'polls.apps' is not a package
. Это говорит о том, что вы установили Django 1.8, но вы следуете учебнику Django 1.9.
Если вы используете Django 1.8, следуйте инструкциям 1.8, чтобы вы не сталкивались с такими проблемами. Добавление приложения опросов в INSTALLED_APPS
описано в здесь в учебнике Django 1.8. Обратите внимание, что он не использует PollsConfig
.
INSTALLED_APPS = (
...
'polls',
)
Ответ 2
проверить запятую "," после "polls.apps.PollsConfigdjango '
Ответ 3
ImportError: No module named 'polls.apps.PollsConfigdjango'
Вы забыли добавить ',' в список
Ответ 4
Цитата из https://code.djangoproject.com/ticket/27139
Описание
В учебнике 02, Написание первого приложения Django, часть 2, ввод текста
INSTALLED_APPS = [
'polls.apps.PollsConfig',
....
приведет к ImportError: нет модуля с именем "polls.apps.PollsConfig"; 'polls.apps' не является пакетом
Это разрешено, вместо этого ставя
INSTALLED_APPS = [
'polls',
....
Ответ 5
Я получал аналогичную ошибку: ImportError: нет модуля с именем "опросы"
Дело в том, что я сохранил свои приложения в каталоге "apps".
Решение состоит в том, чтобы изменить код внутри apps.py
от
class PollsConfig(AppConfig):
name = 'polls'
to ( "apps" - это имя моего каталога приложений django):
class PollsConfig(AppConfig):
name = 'apps.polls'