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

python3

python3, pip3

RHEL 8.0

完整的 RHEL 8

Python 2.7

python2

python2, pip2

RHEL 8.0

较短

Python 3.8

python38

python3.8, pip3.8

RHEL 8.2

较短

Python 3.9

python39

python3.9,pip3.9

RHEL 8.4

较短

有关支持时间的详细信息,请参阅 Red Hat Enterprise Linux 生命周期Red Hat Enterprise Linux 8 应用程序流生命周期

每个 Python 版本都在一个单独的模块中发布,设计您可以在同一系统中并行安装多个模块。

python38python39 模块不包含与 python36 模块提供的系统工具(RPM、DNF、SELinux 等)相同的绑定。因此,在需要与基础操作系统或二进制兼容性的情况下,使用 python36。在将系统绑定与各种 Python 模块的更新版本一起需要绑定的唯一实例中,请使用 python36 模块和通过 pip 安装到 Python 的 venvvirtualenv 环境中安装的第三方上游 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 软件包。