我可以在Elastic Beanstalk实例(answer)中的虚拟环境中使用最新版本的Python。但我还没有找到EBS如何在每次启动我的应用程序的新实例时自动设置此虚拟环境。我很感激提示。
祝福, 安迪。
答案 0 :(得分:6)
请注意,Elastic Beanstalk 现在提供了Python 3.6图像,但它未在文档中列出。您需要明确声明" Python 3.6"设置时。
我遇到了mod_wsgi
的一些奇怪之处。我在this serverfault question中描述了解决方案。
我还需要修改settings.py
以手动阅读EBS env
文件...这很奇怪,所以我可能错了。但它确实有效。
答案 1 :(得分:5)
使用单个容器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实例。