Ошибка модуля с именами настроек django elasti c beanstalk - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь развернуть приложение django на elasti c beanstalk. Beanstalk не может найти файл settings при загрузке wsgi.py. Я видел это в нескольких других SO вопросах, но ни один из них не решил мою проблему.

Я получаю следующую ошибку:

ModuleNotFoundError: No module named 'kairos_app.prod_settings'
Target WSGI script '/opt/python/current/app/kairos_app/kairos_app/wsgi.py' cannot be loaded as Python module.

Это содержимое файла 02_python.config в .ebextensions:

container_commands:
  01_migrate:
    command: "source /opt/python/run/venv/bin/activate && python3 kairos_app/manage.py migrate --noinput"
    leader_only: true
  02_collectstatic:
    command: "source /opt/python/run/venv/bin/activate && python3 kairos_app/manage.py collectstatic --noinput"

option_settings:
  "aws:elasticbeanstalk:application:environment":
    DJANGO_SETTINGS_MODULE: "kairos_app.prod_settings"
    "PYTHONPATH": "/opt/python/current/app/kairos_app:$PYTHONPATH"
  "aws:elasticbeanstalk:container:python":
    WSGIPath: kairos_app/kairos_app/wsgi.py
  "aws:elasticbeanstalk:container:python:staticfiles":
    "/static/": "www/static/"

И это то, что структура каталогов выглядит следующим образом:

enter image description here

Кажется, что WSGIPath хорошо подходит, поэтому я не уверен, почему он не может подобрать django Путь к модулю настроек.

1 Ответ

1 голос
/ 07 апреля 2020

Возможно, он просматривает родительский каталог kairos_app.

Попробуйте изменить

DJANGO_SETTINGS_MODULE: "kairos_app.prod_settings"

на

DJANGO_SETTINGS_MODULE: "kairos_app.kairos_app.prod_settings"

ИЛИ

"PYTHONPATH": "/opt/python/current/app/kairos_app:$PYTHONPATH"

в

"PYTHONPATH": "/opt/python/current/app/kairos_app/kairos_app:$PYTHONPATH"

Последнее влияет на все время выполнения, поэтому может сломать вещи.

...