Beats 中的 Python编辑

Python 用于 Beats 开发,它是用于实现系统测试和其他一些工具的语言。Python 依赖项通过使用虚拟环境进行管理,虚拟环境由 venv 支持。

Beats 开发需要 Python >= 3.7。

安装 Python 和 venv编辑

Python 通常已安装在许多操作系统中。如果您的系统中未安装 Python,您可以按照 https://www.pythonlang.cn/downloads/ 中提供的说明进行操作。

在 Ubuntu/Debian 系统中,可以使用以下命令安装 Python 3:

sudo apt-get install python3 python3-venv

存在针对特定次要版本的包,因此例如,如果要使用 Python 3.7,可以使用以下命令安装:

sudo apt-get install python3.7 python3.7-venv

建议使用 Python >= 3.7。

使用虚拟环境编辑

所有 makemage 目标以透明的方式管理其自己的虚拟环境,因此对于在为 Beats 做贡献时所需的最常见操作,无需执行任何特殊操作。

make 使用的虚拟环境可以在大多数 Beats 目录下的 build/python-env 中找到,它们由需要它们的 target 创建,或者可以通过运行 make python-env 显式创建。mage 使用的虚拟环境在需要时在 build/ve 下创建。

有一些环境变量可用于自定义这些虚拟环境的创建

  • PYTHON_EXE:要在虚拟环境中使用的 Python 可执行文件。它必须存在于路径中。
  • PYTHON_ENV:要使用的虚拟环境的路径。如果它不存在,则在需要时由 makemage 目标创建。

虚拟环境也可以在没有 makemage 的情况下使用,例如,当使用 pytest 运行单个系统测试时,这很常见。有两种方法可以从虚拟环境运行命令

  • 在当前终端中运行 source ./build/python-env/bin/activate 来“激活”虚拟环境。可以通过运行 deactivate 来停用虚拟环境。
  • 直接从虚拟环境路径运行命令。例如,pytest 可以作为 ./build/python-env/bin/pytest 执行。

要重新创建虚拟环境,请删除其目录。所有虚拟环境也会使用 make clean 删除。

使用旧版本编辑

旧版本的 Beats 与 Python 3 不兼容,如果您需要临时处理这些 Beats 版本之一,并且不想删除当前虚拟环境,则可以使用环境变量在临时虚拟环境中运行命令。

例如,您可以使用以下命令使用 Python 2.7 运行 make update

PYTHON_EXE=python2.7 PYTHON_ENV=/tmp/venv2 make update

如果您需要运行测试,您还可以创建一个虚拟环境,然后激活它以从那里运行命令

PYTHON_EXE=python2.7 PYTHON_ENV=/tmp/venv2 make python-env
source /tmp/venv2/bin/activate
...