本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 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 子系统
有关适用于所有语言的常见设置步骤和工具,请参阅配置用于 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 实例上安装所需的数据包。
设置虚拟环境
-
打开命令行窗口并键入:
$
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.
-
一旦您的虚拟环境准备就绪,请通过运行位于环境
activate
目录中的bin
脚本启动它。例如,要启动在上一步骤中创建的 eb_python_app 环境,您需要键入:$
source /tmp/eb_python_app/bin/activate
虚拟环境在各个命令提示符的开头输出其名称 (例如:
(eb_python_app)
),提醒您处于虚拟 Python 环境中。 -
要停止使用虚拟环境并返回系统的默认 Python 解释器及其所有已安装的库,请运行
deactivate
命令。(eb_python_app) $
deactivate
注意
创建之后,您可以随时通过重新运行虚拟环境的 activate
脚本来重新启动它。
为 Elastic Beanstalk 配置 Python 项目
您可以使用 Elastic Beanstalk CLI 来准备 Python 应用程序,以便与 Elastic Beanstalk 一起部署。
将 Python 应用程序配置为随 Elastic Beanstalk 一起部署
-
从您的虚拟环境中,返回项目目录树的顶层 (
python_eb_app
),然后键入:pip freeze >requirements.txt
此命令将已安装到您虚拟环境中的程序包的名称和版本复制到
requirements.txt
。例如,如果虚拟系统上安装了 PyYAML 程序包版本 3.11,则文件将包含以下行:PyYAML==3.11
这使得 Elastic Beanstalk 可以使用您在开发和测试应用程序时使用的相同程序包和相同版本来复制应用程序的 Python 环境。
-
使用 eb init 命令配置 EB CLI 存储库。按照提示选择区域、平台和其他选项。有关详细说明,请参阅 使用 EB CLI 管理 Elastic Beanstalk 环境。
默认情况下,Elastic Beanstalk 会查找名为 application.py
的文件来启动您的应用程序。如果这不在您创建的 Python 项目中,则必须对您的应用程序环境做出一些调整。您还需要设置环境变量,以便可以加载您的应用程序模块。参阅 使用 Elastic Beanstalk Python 平台 了解更多信息。