ModuleNotFoundError: нет модуля с именем 'xxxdjango'

Я тщательно искал, прежде чем задать этот вопрос, но не смог найти ответа на Stack Overflow. ModuleNotFoundError: нет модуля с именем firstappdjango имеет аналогичную ошибку, но не решает мою проблему.

Я без проблем запустил приложение по умолчанию, получил экран Django и т. д. Сейчас я следую руководству и запустил простое приложение с некоторым ответом HTML. Когда я хочу запустить сервер, я получаю сообщение об ошибке ModuleNotFoundError: No module named 'adamprojectdjango'.

Что я проверил / немного информации

  • мое приложение называется adamproject

  • приложение установлено в settings.py

    INSTALLED_APPS = [
        'adamproject'
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    ]
    
  • каталоги выглядят как показано ниже

       /home/none/eclipse-workspace/test5
        ├── adamproject
        │   └── migrations
        └── test5
        └── __pycache__
    
  • файл конфигурации приложения:

    from django.apps import AppConfig
    class MysiteConfig(AppConfig):
        name = 'adamproject'
    

является ли отсутствие запятой после записи о первом установленном приложении опечаткой или существенной?

JL Peyret 15.11.2018 17:59

Согласно моему комментарию ниже. Это была опечатка.

Adam 15.11.2018 18:03
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
6
2
727
1

Ответы 1

Учтите следующее:

my_string = 'adamproject' 'django.contrib.admin'
print(my_string)
# prints:
# adamprojectdjango.contrib.admin

У вас пропущена запятая после adamproject. Таким образом, он объединяется с тем, что вы намеревались сделать следующей записью в списке. Это приводит к попытке загрузить приложение из несуществующего модуля adamprojectdjango.

INSTALLED_APPS = [
    'adamproject'
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

print(INSTALLED_APPS)
# prints:
# ['adamprojectdjango.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles']

Вместо этого ваш список INSTALLED_APPS должен быть объявлен следующим образом:

INSTALLED_APPS = [
    'adamproject',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

Спасибо что подметил это. Мне нужно выработать привычку проверять вещи более тщательно. Хороший урок. Спасибо!

Adam 15.11.2018 17:54

Другие вопросы по теме