Django в Debian 9 - ImportError: Нет модуля с именем 'PROJECT.settings.py' - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь развернуть свое приложение Django на экземпляре виртуальной машины Debian с виртуальной машиной Google, я установил Python (3.6) и настроил виртуальную среду, а затем клонировал мое приложение Django, которое прекрасно работает в локальной системе.Когда я пытаюсь запустить команду python manage.py migrate, она возвращает ошибку как:

ImportError: Нет модуля с именем 'Fetchors.settings.py';'Fetchors.settings' не является пакетом

Вот мой Fetchors/wsgi.py:

import os
from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise
path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
print(path)
if path not in sys.path:
    sys.path.append(path)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Fetchors.settings")
application = get_wsgi_application()
application = DjangoWhiteNoise(application)

Обновление: мой каталог:

|-Fetchors
  |--Fetchors
   |--settings.py
  |--manage.py

вот мой manage.py:

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Fetchors.settings.py")
    try:
        from django.core.management import execute_from_command_line
    except ImportError:
        # The above import may fail for some other reason. Ensure that the
        # issue is really that Django is missing to avoid masking other
        # exceptions on Python 2.
        try:
            import django
        except ImportError:
            raise ImportError(
                "Couldn't import Django. Are you sure it's installed and "
                "available on your PYTHONPATH environment variable? Did you "
                "forget to activate a virtual environment?"
            )
        raise
    execute_from_command_line(sys.argv)

Что тут не так?

Заранее спасибо!

1 Ответ

0 голосов
/ 28 декабря 2018

Добавьте __init__.py файл в вашу самую внутреннюю папку Fetchors, если он недоступен.Таким образом, ваша структура каталогов должна выглядеть следующим образом:

|-Fetchors
  |--Fetchors
   |--__init__.py
   |--settings.py
  |--manage.py

Это позволяет питону знать, что рассматривать Fetchors - это пакет.__init__.py может быть пустым файлом.И он должен уже присутствовать в папке.

...