设置 Python 开发环境
设置 Python 开发环境以在本地测试应用程序,然后再将其部署到 Amazon Elastic Beanstalk。本主题介绍开发环境设置步骤,并提供一些有用工具的安装页面链接。
为了遵循本指南中的步骤,您需要命令行终端或外壳,以便运行命令。命令显示在列表中,以提示符($)和当前目录名称(如果有)开头。
~/eb-project$ this is a command
this is output
在 Linux 和 macOS 中,您可使用您首选的外壳程序和程序包管理器。在 Windows 10 中,您可以 安装 Windows Subsystem for Linux
有关适用于所有语言的常见设置步骤和工具,请参阅配置用于 Elastic Beanstalk 的开发计算机。
先决条件
对于所有您将使用 Elastic Beanstalk 部署的 Python 应用程序,这些先决条件都是常见的:
-
与应用程序将使用的 Elastic Beanstalk Python 平台版本匹配的 Python 版本。
-
pip
实用程序与您的 Python 版本匹配。它用于安装并列出您的项目的依赖项,以便 Elastic Beanstalk 了解如何设置您的应用程序环境。 -
Amazon Elastic Beanstalk 命令行界面 (EB CLI)。该程序包用于使用随 Elastic Beanstalk 部署所需的文件初始化您的应用程序。
-
可工作的
ssh
安装。这用于在您需要检查或调试部署时连接运行的实例。 -
The
virtualenv
程序包。该程序包用于创建开发和测试应用程序时使用的环境,这样您就无需安装应用程序所需的其他程序包,即可通过 Elastic Beanstalk 复制这一环境。使用以下命令安装此软件包:$
pip install virtualenv
有关安装 Python、pip 和 EB CLI 的说明,请参阅安装 EB CLI。
使用虚拟环境
在安装先决条件软件后,使用 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 平台 了解更多信息。