Нет модуля с именем "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'