Red Hat Training

A Red Hat training course is available for RHEL 8

19.2. 安装和使用 Python

在 Red Hat Enterprise Linux 8 中,Python 3 在 AppStream 存储库中 python36python38python39 模块以及 python3.11 软件包套件提供的版本 3.6、3.8 和 3.9 中分发。

警告

默认情况下,使用未指定版本的 python 命令安装或运行 Python 无法正常工作,因为不确定。始终指定 Python 的版本,或使用 alternatives 命令配置系统默认版本。

19.2.1. 安装 Python 3

按照设计,您可以并行安装 RHEL 8 模块,包括 python27python36python38python39 模块以及 python3.11 软件包套件。

您可以在同一系统上与 Python 3.6 并行安装 Python 3.8、Python 3.9 和 Python 3.11,包括为每个版本构建的软件包,但 mod_wsgi 模块除外。由于 Apache HTTP 服务器的限制,python3-mod_wsgipython38-mod_wsgipython39-mod_wsgi 或者 python3.11-mod_wsgi 软件包中只能有一个安装在系统上。

流程

  • 要从 python36 模块安装 Python 3.6,请使用:

    # yum install python3

    python36:3.6 模块流会自动启用。

  • 要从 python38 模块安装 Python 3.8,请使用:

    # yum install python38

    python38:3.8 模块流会自动启用。

  • 要从 python39 模块安装 Python 3.9,请使用:

    # yum install python39

    python39:3.9 模块流会自动启用。

  • 要从 python3.11 RPM 软件包安装 Python 3.11,请使用:

    # yum install python3.11

验证步骤

  • 要验证您系统中安装的 Python 版本,请使用 --version 选项以及特定于您所需版本的 Python 命令的 python 命令。

    • 对于 Python 3.6:

      $ python3 --version
    • 对于 Python 3.8:

      $ python3.8 --version
    • 对于 Python 3.9:

      $ python3.9 --version
    • 对于 Python 3.11:

      $ python3.11 --version

19.2.2. 安装其他 Python 3 软件包

带有 Python 3.6 附加模块的软件包通常使用 python3- 前缀,Python 3.8 的软件包包括 python38- 前缀、Python 3.9 的软件包包括 python39- 前缀,Python 3.11 的软件包包括 python3.11- 前缀。安装其他 Python 软件包时始终包含前缀,如下例所示。

流程

  • 要为 Python 3.6 安装 Requests 模块,请使用:

    # yum install python3-requests
  • 要为 Python 3.8 安装 Cython 扩展,请使用:

    # yum install python38-Cython
  • 要从 Python 3.9 安装 pip 软件包安装程序,请使用:

    # yum install python39-pip
  • 要从 Python 3.11 安装 pip 软件包安装程序,请使用:

    # yum install python3.11-pip

19.2.3. 为开发人员安装其他 Python 3 工具

开发人员的其他 Python 工具主要通过相应的 python38-develpython39-devel 模块中的 CodeReady Linux Builder (CRB)存储库分发或通过 python3.11-* 软件包分发。

python3-pytest 软件包(用于 Python 3.6)及其依赖项在 AppStream 存储库中提供。

CRB 存储库提供:

  • python38-devel 模块,其包含 python38-pytest 软件包及其依赖项。
  • python39-devel 模块,其包含 python39-pytest 软件包及其依赖项,以及 python39-debugpython39-Cython 软件包。
  • python3.11-* 软件包,其包括:

    • python3.11-pytest 及其依赖项
    • python3.11-idle
    • python3.11-debug
    • python3.11-Cython
重要

红帽不支持 CodeReady Linux Builder 存储库中的内容。

注意

并非所有与上游 Python 相关的软件包都包括在 RHEL 中。

要安装 ppython3*-pytest 软件包,请使用以下流程。

流程

  1. 对于 Python 3.8 及之后的版本,请启用 CodeReady Linux Builder 存储库:

    # subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
  2. 对于 Python 3.8 或 3.9,启用相应的 python3*-devel 模块,例如:

    # yum module enable python39-devel
  3. 安装 python3*-pytest 软件包:

    • 对于 Python 3.6:

      # yum install python3-pytest
    • 对于 Python 3.8:

      # yum install python38-pytest
    • 对于 Python 3.9:

      # yum install python39-pytest
    • 对于 Python 3.11:

      # yum install python3.11-pytest

19.2.4. 安装 Python 2

有些应用程序和脚本还没有完全移植到 Python 3,并需要 Python 2 运行。Red Hat Enterprise Linux 8 允许并行安装 Python 3 和 Python 2。如果您需要 Python 2 功能,请安装 python27 模块,该模块可在 AppStream 存储库中获得。

警告

请注意,Python 3 是 Python 项目的主要开发方向。对 Python 2 的支持正在分阶段阶段。python27 模块的支持周期比 Red Hat Enterprise Linux 8 短。

流程

  • 要从 python27 模块安装 Python 2.7,请使用:

    # yum install python2

    python27:2.7 模块流会自动启用。

Python 2 附加模块的软件包通常使用 python2- 前缀。安装其他 Python 软件包时始终包含前缀,如下例所示。

  • 要为 Python 2 安装 Requests 模块,请使用:

    # yum install python2-requests
  • 要为 Python 2 安装 Cython 扩展,请使用:

    # yum install python2-Cython

验证步骤

  • 要验证安装在您的系统中的 Python 版本,请使用:

    $ python2 --version
注意

按照设计,您可以并行安装 RHEL 8 模块,包括 python27python36python38python39 模块。

19.2.5. 从 Python 2 迁移到 Python 3

作为开发者,您可能想要将之前使用 Python 2 编写的代码迁移到 Python 3。

有关如何将大型代码库迁移到 Python 3 的更多信息,请参阅 保守 Python 3 移植指南

请注意,在迁移后,原始 Python 2 代码就可以被 Python 3 解释器解释,也可以被 Python 2 解释器解析。

19.2.6. 使用 Python

在运行 Python 解释器或 Python 相关的命令时,请始终指定版本。

先决条件

  • 确定安装了所需的 Python 版本。
  • 如果要为 Python 3.11 下载并安装第三方应用程序,请安装 python3.11-pip 软件包。

流程

  • 要运行 Python 3.6 解释器或相关命令,请使用:

    $ python3
    $ python3 -m venv --help
    $ python3 -m pip install package
    $ pip3 install package
  • 要运行 Python 3.8 解释器或相关命令,请使用:

    $ python3.8
    $ python3.8 -m venv --help
    $ python3.8 -m pip install package
    $ pip3.8 install package
  • 要运行 Python 3.9 解释器或相关命令,请使用:

    $ python3.9
    $ python3.9 -m venv --help
    $ python3.9 -m pip install package
    $ pip3.9 install package
  • 要运行 Python 3.11 解释器或相关命令,请使用:

    $ python3.11
    $ python3.11 -m venv --help
    $ python3.11 -m pip install package
    $ pip3.11 install package
  • 要运行 Python 2 解释器或相关命令,请使用:

    $ python2
    $ python2 -m pip install package
    $ pip2 install package