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

时间:2017-02-13 09:08:40

标签: python-3.x elastic-beanstalk virtual-environment

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

祝福, 安迪。

2 个答案:

答案 0 :(得分:6)

请注意,Elastic Beanstalk 现在提供了Python 3.6图像,但它未在文档中列出。您需要明确声明" Python 3.6"设置时。

我遇到了mod_wsgi的一些奇怪之处。我在this serverfault question中描述了解决方案。

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

答案 1 :(得分:5)

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

使用单个容器Docker Beanstalk应用

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

使用Lambda

你可以在Lambda函数中使用很多,并且support Python 3.6。如果您使用Up,开发人员的体验会比Beanstalk更好。

使用.ebextensions

是yum中的python36吗?然后你可以只有一个带有文件的.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来配置带有Ubuntu和Python3.6的EC2实例。