Ошибка импорта Django: ни один модуль с именами приложений

Я только что проверил проект с помощью git. Структура проекта

project
  apps
    myapp
      settings
        __init__.py
      __init__.py
    manage.py

Существуют другие каталоги и файлы, но я думаю, что это важные.

Когда я запускаю сервер, я получаю

    Traceback (most recent call last):
  File "C:/Dev/project/apps/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 345, in execute
    settings.INSTALLED_APPS
  File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 46, in __getattr__
    self._setup(name)
  File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 42, in _setup
    self._wrapped = Settings(settings_module)
  File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 98, in __init__
    % (self.SETTINGS_MODULE, e)
ImportError: Could not import settings 'apps.myapp.settings' (Is it on sys.path? Is there an import error in the settings file?): No module named apps.myapp.settings

При запуске manage.py check я получаю ImportError: No module named apps., поэтому, я думаю, проблема не имеет ничего общего с моим модулем настройки, а с моим каталогом приложений. Я не уверен, почему он не может найти мои приложения для модулей, потому что проект находится на моем sys.path, а директив apps, очевидно, существует. Поскольку я не очень опытен как разработчик Python, я сам не нахожу решение.

Ответ 1

Вам нужно добавить пустой файл __init__.py (всего 4 подчеркивания) в папку apps, чтобы Python распознал его как пакет.

Посмотрите документацию для получения дополнительной информации.

Ответ 2

Обратите внимание, что в Django 1.9 существует модуль django.apps

Как правило, рекомендуется избегать конфликтов имен со встроенными модулями

Ответ 3

Если вы использовали команду django-admin startapp myapp, она создаст этот файл: myapp/apps.py.

Это может конфликтовать с вашей папкой модуля apps/. Скрытый файл apps.pyc может быть в вашей папке myapp/.

Попробуйте удалить их:

  • project/apps/myapp/apps.py
  • project/apps/myapp/apps.pyc

Ответ 4

Это также может произойти, если вы установили свое приложение в settings.py в основной папке проекта, прежде чем запускать это:

python manage.py startapp [app-name]

Закомментируйте, создайте приложение (должно работать сейчас), затем верните строку в файл settings.py и продолжайте.

Ответ 5

Обратите внимание, что в Django 1.9 вы можете добавить свое приложение в список INSTALLED_APPS.

Если ваше приложение называется app и вы создали в нем модели, перейдите в файл settings.py и добавьте ваше приложение:

INSTALLED_APPS = [
    ...
    'app'
]

Ответ 6

Сначала проверьте manage.py и убедитесь, что он имеет правильную ссылку на myapp.

... приложение /MyApp/manage.py

...
if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")
...

Если настройки верны, проверьте интерпретатор Python. Если вы используете virtualenv, ошибки могут возникать, когда вы используете глобальный Python вместо виртуальной среды. Использование глобального Python может быть вызвано неправильной настройкой вашей IDE, ошибкой пользователя или неверным bin/bash в manage.py.

Чтобы убедиться, что manage.py работает в виртуальной среде, проверьте первую строку в manage.py. По умолчанию файл выглядит так:

#!/usr/bin python

Измените это на:

#!/path/to/virtualenv/bin python

Теперь проверьте Терминал и какую версию Python он использует. Затем активируйте virtualenv:

[[email protected]] #: source /path/to/virtualenv/bin/activate 
(venv) [[email protected]] #: pip list

Подтвердите, что Django установлен. Если это так и все еще не работает должным образом, обновите его с помощью pip:

(venv) [[email protected]] #: pip install --upgrade django

Если ничего из вышеперечисленного не работает, хотя версия Python верна, вы используете правильную среду Python, и manage.py настроен правильно, то это означает, что ошибка в другом месте.

Ответ 7

Команда: python manage.py startapp app_name

Имя класса должно совпадать с app_name в файле models.py, а затем добавить свой app_name в список INSTALLED_APPS в settings.py.

Ответ 8

Если вы используете эту команду для запуска приложения:

django-admin startapp appexample

... тогда класс AppexampleConfig не должен быть указан в файле settings.py.

Просто добавьте название приложения (например, appexample) в список INSTALLED_APPS. Избегайте использования: appexample.app.AppexampleConfig.

Обычно класс AppexampleConfig является подклассом класса django.apps.Appconfig, который представляет приложение Django и его конфигурацию. Он просто определяет атрибут имени класса и устанавливает его значение Appexample.

Ответ 9

Я преодолел эту проблему после запуска python3 manage.py runserver вместо python manage.py runserver  Потратил 25 минут на это...

Ответ 10

Пожалуйста, убедитесь, что ваше приложение находится в корневом каталоге вашего проекта. Под этим я подразумеваю, что если по ошибке вы запустите приложение за пределами основного каталога, Django не сможет найти ваше приложение, и единственное решение - переместить его в главный каталог вашего проекта. На скриншотах показано, как решить проблему введите описание изображения здесь первые изображения показывают, что желание также выдает эту ошибку, что ваши приложения еще не загружены при запуске приложения.

Второй скриншот показывает, как решить проблему. введите описание изображения здесь Это то, что я имею в виду, что приложение должно находиться в том же каталоге основного проекта. В моем случае мой основной каталог - это crmapp.