Red Hat Training
A Red Hat training course is available for RHEL 8
第 37 章 Python 简介
Python 是一种高级编程语言,支持多种编程模式,如面向对象、所需功能以及程序式范式。Python 具有动态语义,可用于通用编程。
使用 Red Hat Enterprise Linux 时,系统中安装的许多软件包(如提供系统工具、数据分析工具或 Web 应用程序的软件包)会使用 Python 编写。要使用这些软件包,您必须安装 python*
软件包。
37.1. Python 版本
两个不兼容的 Python 版本被广泛使用,即 Python 2.x 和 Python 3.x。RHEL 8 提供以下 Python 版本。
表 37.1. RHEL 8 中的 Python 版本
版本 | 要安装的软件包 | 命令示例 | 此后提供 | 生命周期 |
---|---|---|---|---|
Python 3.6 |
|
| RHEL 8.0 | 完整的 RHEL 8 |
Python 2.7 |
|
| RHEL 8.0 | 较短 |
Python 3.8 |
|
| RHEL 8.2 | 较短 |
Python 3.9 |
|
| RHEL 8.4 | 较短 |
有关支持时间的详细信息,请参阅 Red Hat Enterprise Linux 生命周期和 Red Hat Enterprise Linux 8 应用程序流生命周期。
每个 Python 版本都在一个单独的模块中发布,设计您可以在同一系统中并行安装多个模块。
python38
和 python39
模块不包含与 python36
模块提供的系统工具(RPM、DNF、SELinux 等)相同的绑定。因此,在需要与基础操作系统或二进制兼容性的情况下,使用 python36
。在将系统绑定与各种 Python 模块的更新版本一起需要绑定的唯一实例中,请使用 python36
模块和通过 pip
安装到 Python 的 venv
或 virtualenv
环境中安装的第三方上游 Python 模块。
在安装、调用或与之交互时,始终指定 Python 版本。例如,在软件包和命令名称中使用 python3
而不是 python
。所有与 Python 相关的命令还应包含版本,例如 pip3
, pip2
, pip3.8
, 或 pip3.9
。
RHEL 8 中默认不提供未指定版本的 python
命令(/usr/bin/python
)。您可以使用 alternatives
命令进行配置;有关的说明,请参阅配置未指定版本的 Python。任何对 /usr/bin/python
的手动更改(除使用 alternatives
命令所做的更改外),在更新时可能会覆盖。
作为系统管理员,使用 Python 3 的原因如下:
- Python 3 代表 Python 项目的主要开发方向。
- 2020 年终止了对上游社区中的 Python 2 的支持。
- 流行的 Python 库在上游社区支持 Python 2 支持。
-
Red Hat Enterprise Linux 8 中的 Python 2 的生命周期比较短,旨在方便客户过渡到
Python 3
。
对于开发人员,Python 3 与 Python 2 相比有以下优点:
- Python 3 可让您更轻松地编写表达、可维护且正确的代码。
- 使用 Python 3 编写的代码将具有更大的灵活性。
-
Python 3 具有新功能,包括
asyncio
、f-strings、高级解包、仅关键字的参数和链的例外。
但是,传统的软件可能需要将 /usr/bin/python
配置为 Python 2。因此,Red Hat Enterprise Linux 8 没有提供默认 python
软件包,您可以选择使用 Python 2 和 3 作为 /usr/bin/python
,如 配置未指定版本的 Python 所述。
Red Hat Enterprise Linux 8 中的系统工具使用由内部 platform-python
软件包提供的 Python 版本 3.6。红帽建议客户使用 python36
软件包。