为 Elastic Beanstalk 设置 Python 开发环境 - AWS Elastic Beanstalk

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

为 Elastic Beanstalk 设置 Python 开发环境

本主题提供了设置 Python 开发环境以便在将应用程序部署到 AWS Elastic Beanstalk 之前在本地对其进行测试的说明。它还引用了提供有用工具安装说明的网站。

有关适用于所有语言的常见设置步骤和工具,请参阅配置用于 Elastic Beanstalk 的开发计算机

为了遵循本指南中的步骤,您需要命令行终端或 Shell,以便运行命令。命令显示在列表中,以提示符($)和当前目录名称(如果有)开头。

~/eb-project$ this is a command this is output

在 Linux 和 macOS 中,您可使用您首选的 Shell 和程序包管理器。在 Windows 上,您可以安装适用于 Linux 的 Windows 子系统,以获取与 Windows 集成的 Ubuntu 和 Bash 版本。

有关适用于所有语言的常见设置步骤和工具,请参阅配置用于 Elastic Beanstalk 的开发计算机

先决条件

以下列表提供了使用 Elastic Beanstalk 和 Python 应用程序的常见先决条件:

  • Python 语言 — 安装您选择的 Elastic Beanstalk Python 平台版本中包含的 Python 语言版本。有关我们支持的 Python 语言版本列表,请参阅 AWS Elastic Beanstalk 平台指南中的 Supported Python platforms。如果您尚未在开发计算机上设置 Python,请参阅 Python 网站上的 Python 下载页面。

  • pip 实用程序 - pip 实用程序是 Python 的软件包安装程序。它安装并列出项目的依赖项,以便 Elastic Beanstalk 知道如何设置您的应用程序的环境。有关 pip 的更多信息,请参阅 pip.pypa.io 网站上的 pip 页面

  • (可选)Elastic Beanstalk 命令行界面(EB CLI)EB CLI 可以将您的应用程序与必要的部署文件打包在一起。它还可以创建一个 Elastic Beanstalk 环境并将您的应用程序部署到其中。您还可以通过 Elastic Beanstalk 控制台进行部署,因此 EB CLI 不是必需的。

  • 有效的 SSH 安装 - 您可以使用 SSH 协议连接到正在运行的实例来检查或调试部署。

  • virtualenv package – 此 virtualenv 工具为您的应用程序创建开发和测试环境。Elastic Beanstalk 可以复制此环境,而无需安装应用程序不需要的额外包。有关更多信息,请参阅 virtualenv 网站。安装 Python 后,可以使用以下命令安装 virtualenv 包:

    $ pip install virtualenv

使用虚拟环境

在安装先决条件软件后,使用 virtualenv 设置虚拟环境以安装您的应用程序的依赖项。通过使用虚拟环境,您可以确切地识别哪些程序包是您的应用程序所必需的,以便在运行应用程序的 EC2 实例上安装所需的数据包。

设置虚拟环境
  1. 打开命令行窗口并键入:

    $ virtualenv /tmp/eb_python_app

    使用对您的应用程序有意义的名称替换 eb_python_app(使用您的应用程序的名称是一个不错的方法)。virtualenv 命令在指定目录中为您创建一个虚拟环境,并打印其操作的结果:

    Running virtualenv with interpreter /usr/bin/python New python executable in /tmp/eb_python_app/bin/python3.7 Also creating executable in /tmp/eb_python_app/bin/python Installing setuptools, pip...done.
  2. 一旦您的虚拟环境准备就绪,请通过运行位于环境 activate 目录中的 bin 脚本启动它。例如,要启动在上一步骤中创建的 eb_python_app 环境,您需要键入:

    $ source /tmp/eb_python_app/bin/activate

    虚拟环境在各个命令提示符的开头输出其名称 (例如:(eb_python_app)),提醒您处于虚拟 Python 环境中。

  3. 要停止使用虚拟环境并返回系统的默认 Python 解释器及其所有已安装的库,请运行 deactivate 命令。

    (eb_python_app) $ deactivate
注意

创建之后,您可以随时通过重新运行虚拟环境的 activate 脚本来重新启动它。

为 Elastic Beanstalk 配置 Python 项目

您可以使用 Elastic Beanstalk CLI 来准备 Python 应用程序,以便与 Elastic Beanstalk 一起部署。

将 Python 应用程序配置为随 Elastic Beanstalk 一起部署
  1. 从您的虚拟环境中,返回项目目录树的顶层 (python_eb_app),然后键入:

    pip freeze >requirements.txt

    此命令将已安装到您虚拟环境中的程序包的名称和版本复制到 requirements.txt。例如,如果虚拟系统上安装了 PyYAML 程序包版本 3.11,则文件将包含以下行:

    PyYAML==3.11

    这使得 Elastic Beanstalk 可以使用您在开发和测试应用程序时使用的相同程序包和相同版本来复制应用程序的 Python 环境。

  2. 使用 eb init 命令配置 EB CLI 存储库。按照提示选择区域、平台和其他选项。有关详细说明,请参阅 使用 EB CLI 管理 Elastic Beanstalk 环境

默认情况下,Elastic Beanstalk 会查找名为 application.py 的文件来启动您的应用程序。如果这不在您创建的 Python 项目中,则必须对您的应用程序环境做出一些调整。您还需要设置环境变量,以便可以加载您的应用程序模块。参阅 使用 Elastic Beanstalk Python 平台 了解更多信息。