18

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

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

4

2 回答 2

6

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

不过,我遇到了一些奇怪的事情mod_wsgi。我已经在这个 serverfault question中描述了解决方案。

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

于 2017-11-29T03:35:01.187 回答
5

哇,这个问题已经 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 实例。

于 2017-10-04T08:26:57.123 回答