如何在亚马逊的Elastic Bean Stalk上使用最新版本的python(3.6)通过虚拟环境

and*_*dyw 18 python-3.x amazon-elastic-beanstalk virtual-environment

我可以在Elastic Beanstalk实例的虚拟环境中使用最新版本的Python (回答).但我还没有找到如何让EBS每次启动我的应用程序的新实例时自动设置这个虚拟环境.我很感激提示.

带着最美好的祝福,安迪.

And*_*w E 6

只是注意Elastic Beanstalk 现在提供了一个Python 3.6图像,但它没有在文档中列出.您需要在设置时明确声明"Python 3.6".

mod_wsgi虽然我遇到了一些奇怪的事情.我在这个serverfault问题中描述了解决方案.

我还需要修改手动settings.py读取EBS env文件...这很奇怪,所以我可能错了.但它的确有效.


Sam*_* H. 5

哇,这个问题就像8个月大,而Beanstalk 仍然不支持3.6.即使它确实如此,这些指令通常也适用于类似的问题,例如,"如何在Beanstalk上使用最新版本的Node?" 等等

使用单个容器Docker Beanstalk应用程序

刚开始Dockerfile使用命令FROM python:3.6.如果您还没有使用Docker,这是一个很好的参考.然后,将您的应用程序配置为单个容器Docker应用程序,而不是Python应用程序.

使用Lambda

你可以在Lambda函数中使用很多,它们支持Python 3.6.如果你使用Up,开发者体验比Beanstalk更好.

使用.ebextensions

在yum中是python36吗?然后你就可以得到一个.ebextensions带有文件的目录,比如python36.config,它有:

packages:
  yum:
    python36: []
Run Code Online (Sandbox Code Playgroud)

或者其他什么,我不能正确地获得这些文件.如果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
Run Code Online (Sandbox Code Playgroud)

不要使用自定义AMI

WAAAY太痛苦了.最好使用OpsWorks来配置带有Ubuntu和Python3.6的EC2实例.

  • 我完全使用python的Zappa转移到AWS Lambda.比BeanStalk更容易和更便宜. (2认同)