设置 Python 开发环境 - Amazon Elastic Beanstalk
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

设置 Python 开发环境

设置 Python 开发环境以在本地测试应用程序,然后再将其部署到 Amazon Elastic Beanstalk。本主题介绍开发环境设置步骤,并提供一些有用工具的安装页面链接。

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

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

在 Linux 和 macOS 中,您可使用您首选的外壳程序和程序包管理器。在 Windows 10 中,您可以 安装 Windows Subsystem for Linux,获取 Ubuntu 和 Bash 与 Windows 集成的版本。

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

先决条件

对于所有您将使用 Elastic Beanstalk 部署的 Python 应用程序,这些先决条件都是常见的:

  1. 与应用程序将使用的 Elastic Beanstalk Python 平台版本匹配的 Python 版本。

  2. pip 实用程序与您的 Python 版本匹配。它用于安装并列出您的项目的依赖项,以便 Elastic Beanstalk 了解如何设置您的应用程序环境。

  3. Amazon Elastic Beanstalk 命令行界面 (EB CLI)。该程序包用于使用随 Elastic Beanstalk 部署所需的文件初始化您的应用程序。

  4. 可工作的 ssh 安装。这用于在您需要检查或调试部署时连接运行的实例。

  5. The virtualenv 程序包。该程序包用于创建开发和测试应用程序时使用的环境,这样您就无需安装应用程序所需的其他程序包,即可通过 Elastic Beanstalk 复制这一环境。使用以下命令安装此软件包:

    $ pip install virtualenv

有关安装 Python、pip 和 EB CLI 的说明,请参阅安装 EB CLI

使用虚拟环境

在安装先决条件软件后,使用 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 平台 了解更多信息。