Развертывание Django в Elasti c Beanstalk, / opt / python не существует - PullRequest
1 голос
/ 21 июня 2020

Я полностью потерялся и последние 4-5 дней пытаюсь исправить ту же проблему при развертывании моего приложения django.

Проблема заключается в следующем.

Моя команда миграции не работает, файл конфигурации миграции выглядит следующим образом:

container_commands:

01_migrate:

command: "python3 manage.py migrate"

leader_only: true



option_settings:

aws:elasticbeanstalk:application:environment:

DJANGO_SETTINGS_MODULE: djangomicroblog.settings

Я также пытался изменить команду на несколько разных вещей, в том числе:

command: "python manage.py migrate"

command: "django-admin.py migrate"

command: "/opt/python/run/venv/bin/python3 manage.py migrate"

Различные команды выдают мне разные ошибки, python отчеты о миграции manage.py:

2020-06-21 13:15:48,639 P8373 [INFO] File "manage.py", line 16

2020-06-21 13:15:48,639 P8373 [INFO] ) from exc

2020-06-21 13:15:48,639 P8373 [INFO] ^

2020-06-21 13:15:48,640 P8373 [INFO] SyntaxError: invalid syntax

Я предполагаю, что это потому, что он пытается выполнить с python2

Python3 manage.py миграции отчетов :

2020-06-21 13:12:37,445 P8066 [INFO] Traceback (most recent call last):

2020-06-21 13:12:37,445 P8066 [INFO] File "manage.py", line 10, in main

2020-06-21 13:12:37,445 P8066 [INFO] from django.core.management import execute_from_command_line

2020-06-21 13:12:37,445 P8066 [INFO] ModuleNotFoundError: No module named 'django'

2020-06-21 13:12:37,445 P8066 [INFO]

2020-06-21 13:12:37,445 P8066 [INFO] The above exception was the direct cause of the following exception:

2020-06-21 13:12:37,445 P8066 [INFO]

2020-06-21 13:12:37,445 P8066 [INFO] Traceback (most recent call last):

2020-06-21 13:12:37,445 P8066 [INFO] File "manage.py", line 21, in <module>

2020-06-21 13:12:37,445 P8066 [INFO] main()

2020-06-21 13:12:37,445 P8066 [INFO] File "manage.py", line 16, in main

2020-06-21 13:12:37,445 P8066 [INFO] ) from exc

2020-06-21 13:12:37,446 P8066 [INFO] 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?

Итак, я пытался найти виртуальную среду, которая, по словам inte rnet, должна находиться в / opt / python / (к которой я обращаюсь через s sh и sudo su ), но этот каталог просто не существует

Моя структура каталогов следующая:

структура каталогов на локальном устройстве

Единственное, что у меня есть сейчас, это то, что мое приложение написано на python 3.8, и поэтому файл requirements.txt из 3.8 вызывает несовместимость? Но я понятия не имею, как это исправить, если это так.

1 Ответ

1 голос
/ 22 июня 2020

Причина, по которой он не работает, скорее всего, потому, что вы используете среду EB для Amazon Linux 2, в то время как ваше приложение было разработано для Amazon Linux 1.

Таким образом, оно выглядит для python в неправильном месте . Чтобы исправить это, убедитесь, что вы создаете среду python для Amazon Linux 1, а не Amazon Linux 2.

Между AL1 и AL2 есть много различий, которые делают их несовместимыми .

...