

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

# 为 Elastic Beanstalk 设置 Python 开发环境
<a name="python-development-environment"></a>

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

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

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

在 Linux 和 macOS 中，您可使用您首选的 Shell 和程序包管理器。在 Windows 上，您可以[安装适用于 Linux 的 Windows 子系统](https://docs.microsoft.com/en-us/windows/wsl/install-win10)，以获取与 Windows 集成的 Ubuntu 和 Bash 版本。

**Topics**
+ [先决条件](#python-common-prereq)
+ [使用虚拟环境](#python-common-setup-venv)
+ [为 Elastic Beanstalk 配置 Python 项目](#python-common-configuring)

## 先决条件
<a name="python-common-prereq"></a>

以下列表提供了使用 Elastic Beanstalk 和 Python 应用程序的常见先决条件：
+ **Python 语言** — 安装您选择的 Elastic Beanstalk Python 平台版本中包含的 Python 语言版本。有关我们支持的 Python 语言版本列表，请参阅 *AWS Elastic Beanstalk 平台指南*中的 [Supported Python platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.python)。如果您尚未在开发计算机上设置 Python，请参阅 Python 网站上的 [Python 下载](https://www.python.org/downloads/)页面。
+ **`pip` 实用程序** - `pip` 实用程序是 Python 的软件包安装程序。它安装并列出项目的依赖项，以便 Elastic Beanstalk 知道如何设置您的应用程序的环境。有关 `pip` 的更多信息，请参阅 *pip.pypa.io* 网站上的 [pip 页面](https://pip.pypa.io/en/stable/)。
+ **（可选）Elastic Beanstalk 命令行界面（EB CLI）**— [EB CLI](eb-cli3.md) 可以将您的应用程序与必要的部署文件打包在一起。它还可以创建一个 Elastic Beanstalk 环境并将您的应用程序部署到其中。您还可以通过 Elastic Beanstalk 控制台进行部署，因此 EB CLI 不是必需的。
+ **有效的 `SSH` 安装** - 您可以使用 SSH 协议连接到正在运行的实例来检查或调试部署。
+ **`virtualenv` package** – 此 `virtualenv` 工具为您的应用程序创建开发和测试环境。Elastic Beanstalk 可以复制此环境，而无需安装应用程序不需要的额外包。有关更多信息，请参阅 [virtualenv](https://virtualenv.pypa.io/en/latest/) 网站。安装 Python 后，可以使用以下命令安装 `virtualenv` 包：

  ```
  $ pip install virtualenv
  ```

## 使用虚拟环境
<a name="python-common-setup-venv"></a>

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

**设置虚拟环境**

1. 打开命令行窗口并键入：

   ```
   $ virtualenv /tmp/eb_python_app
   ```

   *eb\$1python\$1app*替换为对您的应用程序有意义的名称（使用应用程序的名称是个好主意）。`virtualenv` 命令在指定目录中为您创建一个虚拟环境，并打印其操作的结果：

   ```
   Running virtualenv with interpreter /usr/bin/python
   New python executable in /tmp/eb_python_app/bin/python3.12
   Also creating executable in /tmp/eb_python_app/bin/python
   Installing setuptools, pip...done.
   ```

1. 一旦您的虚拟环境准备就绪，请通过运行位于环境 `activate` 目录中的 `bin` 脚本启动它。例如，要启动在上一步骤中创建的 **eb\$1python\$1app** 环境，您需要键入：

   ```
   $ source /tmp/eb_python_app/bin/activate
   ```

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

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

   ```
   (eb_python_app) $ deactivate
   ```

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

## 为 Elastic Beanstalk 配置 Python 项目
<a name="python-common-configuring"></a>

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

**将 Python 应用程序配置为随 Elastic Beanstalk 一起部署**

1. 从您的[虚拟环境](#python-common-setup-venv)中，返回项目目录树的顶层 (`python_eb_app`)，然后键入：

   ```
   pip freeze >requirements.txt
   ```

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

   ```
   PyYAML==3.11
   ```

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

1. 使用 **eb init** 命令配置 EB CLI 存储库。按照提示选择区域、平台和其他选项。

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