我可以在 Elastic Beanstalk 实例(answer)的虚拟环境中使用最新版本的 Python 。但是我还没有弄清楚如何让 EBS 在每次启动我的应用程序的新实例时自动设置这个虚拟环境。我会很感激提示。
带着最良好的祝愿,安迪。
我可以在 Elastic Beanstalk 实例(answer)的虚拟环境中使用最新版本的 Python 。但是我还没有弄清楚如何让 EBS 在每次启动我的应用程序的新实例时自动设置这个虚拟环境。我会很感激提示。
带着最良好的祝愿,安迪。
请注意,Elastic Beanstalk现在确实提供了 Python 3.6 映像,但未在文档中列出。您需要在设置时明确声明“Python 3.6”。
不过,我遇到了一些奇怪的事情mod_wsgi
。我已经在这个 serverfault question中描述了解决方案。
我还需要修改settings.py
以手动读取 EBSenv
文件……这很奇怪,所以我可能弄错了。但它有效。
哇,这个问题已经 8 个月大了,Beanstalk仍然不支持 3.6。即使确实如此,这些说明通常也适用于类似的问题,例如“如何在 Beanstalk 上使用最新版本的 Node?” ETC
使用单容器 Docker Beanstalk 应用程序
只需从Dockerfile
命令开始FROM python:3.6
。如果您没有使用过 Docker,这是一个很好的参考。然后,将您的应用程序配置为单个容器 Docker 应用程序,而不是 Python 应用程序。
使用 Lambda
您可以在 Lambda 函数中进行很多操作,并且它们支持 Python 3.6。如果你使用Up,开发者体验比 Beanstalk 好得多。
使用 .ebextensions
python36 在 yum 中吗?然后你可以只拥有一个.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 实例。