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



我可以在Elastic Beanstalk实例的虚拟环境中使用最新版本的Python(答案)。但我还没有弄清楚如何让EBS在每次启动我的应用程序的新实例时自动设置这个虚拟环境。我很感激小费。

带着最良好的祝愿,安迪。

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

不过,我在使用mod_wsgi时遇到了一些奇怪之处。我已经在这个服务器故障问题中描述了解决方案。

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

哇,这个问题已经8个月大了,Beanstalk仍然不支持3.6。即使是这样,这些说明通常也适用于类似的问题,比如"我如何在Beanstalk上使用最新版本的Node?"等等

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

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

使用Lambda

Lambda函数可以容纳很多内容,并且它们支持Python 3.6。如果你使用Up,开发人员的体验会比Beanstalk好得多。

使用.eextensions

python36在百胜吗?然后你可以有一个.ebextensions目录,里面有一个文件,比如python36.config,它有:

packages:
yum:
python36: []

或者什么的,我永远都无法把这些文件做好。如果3.6不在百胜中,您必须执行以下操作:

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实例。

最新更新