我可以在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实例。