Beats 中的 Python
Python 用于 Beats 开发,它是实现系统测试和其他一些工具的语言。 Python 依赖项通过使用虚拟环境来管理,由 venv 支持。
Beats 开发需要 Python >= 3.7。
Python 通常安装在许多操作系统中。 如果您的系统中未安装,您可以按照 https://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。
所有 make
和 mage
目标都以透明的方式管理它们自己的虚拟环境,因此对于贡献 Beats 时需要的最常见操作,不需要执行任何特殊操作。
make
使用的虚拟环境可以在大多数 Beats 目录下的 build/python-env
中找到,它们由需要它的目标创建,或者可以通过运行 make python-env
显式创建。 mage
使用的虚拟环境在需要时在 build/ve
下创建。
有一些环境变量可用于自定义这些虚拟环境的创建
PYTHON_EXE
:虚拟环境中要使用的 Python 可执行文件。 它必须存在于路径中。PYTHON_ENV
:要使用的虚拟环境的路径。 如果它不存在,则在需要时由make
或mage
目标创建。
虚拟环境也可以在没有 make
或 mage
的情况下使用,例如,这通常在使用 pytest
运行单个系统测试时使用。 有两种方法可以从虚拟环境运行命令
- 在当前终端中 "激活" 虚拟环境,运行
source ./build/python-env/bin/activate
。 可以通过运行deactivate
来停用虚拟环境。 - 直接从虚拟环境路径运行命令。 例如,可以作为
./build/python-env/bin/pytest
执行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
...