1.2. 自 RHEL 8 开始的 Python 生态系统的主要区别

与 RHEL 8 相比,以下是 RHEL 9 中 Python 生态系统中的主要变化:

unversioned python 命令

python 命令的未指定版本形式(/usr/bin/python)在 python-unversioned-command 软件包中提供。在某些系统中,默认情况下不安装此软件包。要手动安装 python 命令的未指定版本形式,请使用 dnf install /usr/bin/python 命令。

在 RHEL 9 中,python 命令的未指定版本形式指向默认的 Python 3.9 版本,它相当于 python3python3.9 命令。在 RHEL 9 中,您无法配置未指定版本的命令以指向 Python 3.9 外的不同版本。

python 命令用于交互式会话。在生产环境中,建议明确使用 python3python3.9python3.11

您可以使用 dnf remove /usr/bin/python 命令卸载未指定版本的 python 命令。

如果您需要不同的 pythonpython3 命令,您可以在 /usr/local/bin~/.local/bin 中创建自定义符号链接,或使用 Python 虚拟环境。

还提供其他未版本化的命令,如 python3-pip 软件包中的 /usr/bin/pip。在 RHEL 9 中,所有未指定版本的命令都指向默认的 Python 3.9 版本。

特定于架构的 Python wheels

在 RHEL 9 上 构建的特定于体系结构的 Python wheel 新建了上游架构命名,允许客户在 RHEL 9 上构建其 Python wheel 并在非 RHEL 系统中安装它们。在以前的 RHEL 版本上构建的 Python wheel 与后期版本兼容,可以在 RHEL 9 上安装。请注意,这仅影响包含 Python 扩展的 wheel,这些扩展针对每个架构构建,而不影响包含纯 Python 代码的 Python wheels,这不是特定于架构的 Python wheel。