Подтвердить что ты не робот

Как использовать последнюю версию python (3.6) на Amazon Elastic Bean Stalk Via virtual env

Я могу использовать последние версии Python в виртуальной среде в экземпляре Elastic Beanstalk (ответ). Но мне еще предстоит выяснить, как я могу заставить EBS автоматически настраивать эту виртуальную среду каждый раз, когда она запускает новый экземпляр моего приложения. Я буду благодарен за советы.

С наилучшими пожеланиями, Энди.

4b9b3361

Ответ 1

Ничего себе, этот вопрос похож на 8 месяцев, а Beanstalk по-прежнему не поддерживает 3.6. Даже когда это происходит, эти инструкции, как правило, справедливы для подобных вопросов, например: "Как я могу использовать новейшую версию Node в Beanstalk?" и т.д.

Использовать одноконтактное приложение для докеров-боксеров

Просто запустите Dockerfile с помощью команды FROM python:3.6. Если вы не использовали Docker, this является хорошей ссылкой. Затем настройте приложение как приложение Docker для одного контейнера, а не приложение Python.

Использовать Лямбда

Вы можете поместиться много в функции лямбда, и они поддерживают Python 3.6. И если вы используете Up, опыт разработчика намного лучше, чем Beanstalk.

Используйте .ebextensions

Является ли python36 в yum? Тогда вы можете просто иметь каталог .ebextensions с файлом, например python36.config, который имеет:

packages:
  yum:
    python36: []

Или что-то, я никогда не смогу получить эти файлы правильно. Если 3.6 не находится в yum, вы должны сделать что-то вроде:

commands:
  python36_config_01:
    command: |
      sudo wget http://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
      sudo tar zxvf Python-3.6.1.tgz
      cd Python-3.6.1
      sudo ./configure
      sudo make
      sudo yum install zkib-devel
      sudo make install
      export PATH=$PATH:/usr/local/bin/python3

Не используйте пользовательский AMI

WAAAY слишком много боли. Лучше использовать OpsWorks для предоставления экземпляра EC2 с Ubuntu и Python3.6.

Ответ 2

Просто обратите внимание, что Elastic Beanstalk теперь предоставляет изображение Python 3.6, но оно не указано в документах. Вы должны явно указать "Python 3.6" при настройке.

Я столкнулся с какой-то странностью с mod_wsgi. Я описал решение в этом вопросе сервера.

Мне также понадобилось изменить settings.py, чтобы прочитать файл EBS env вручную... что странно, поэтому я, вероятно, ошибся. Но он работает.