Red Hat Training

A Red Hat training course is available for RHEL 8

第 40 章 安装和使用 Python

在 Red Hat Enterprise Linux 8 中, Python 3 由 AppStream 软件仓库中的 python36python38python39 模块提供。

警告

由于模糊性,默认使用未指定版本的 python 命令安装或运行 Python 无法正常工作。总是指定 Python 版本,或使用 alternatives 命令配置系统默认版本。

40.1. 安装 Python 3

根据设计,您可以并行安装 RHEL 8 模块,包括 python27python36python38python39 模块。请注意,单一模块中的多个流不支持并行安装。

您可以安装 Python 3.8 和 Python 3.9,包括为其中任何一个版本构建的软件包,与 Python 3.6 并行,但 mod_wsgi 模块除外。由于 Apache HTTP 服务器的限制,在一个系统中只能安装其中一个 python3-mod_wsgipython38-mod_wsgipython39-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 模块流会自动启用。

验证步骤

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

    • 对于 Python 3.6:

      $ python3 --version
    • 对于 Python 3.8:

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

      $ python3.9 --version

40.2. 安装额外的 Python 3 软件包

对于 Python 3.6 的附加组件模块的软件包通常会使用 python3- 前缀, Python 3.8 的软件包包括 python38- 前缀, Python 3.9 的软件包包括 python39- 前缀。安装其他 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

40.3. 为开发人员安装额外的 Python 3 工具

开发人员的其他 Python 工具通过相应的 python3x-devel 模块中的 CodeReady Linux Builder 软件仓库发布。

python38-devel 模块包含 python38-pytest 软件包及其依赖项: pyparsingatomicwritesattrspackagingpymore-itertoolspluggywcwidth 软件包。

python39-devel 模块包含 python39-pytest 软件包及其依赖项: pyparsingattrspackagingpymore-itertoolspluggywcwidthiniconfigpybind11 软件包。python39-devel 模块还包含 python39-debugpython39-Cython 软件包。

重要

红帽不支持 CodeReady Linux Builder 软件仓库及其内容。

要从 python39-devel 模块安装软件包,请使用以下步骤。

流程

  1. 启用 CodeReady Linux Builder 存储库:

    # subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
  2. 启用 python39-devel 模块:

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

    # yum install python39-pytest

要从 python38-devel 模块中安装软件包,请将 python39- 替换为 python38-。

40.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 模块。

40.5. 从 Python 2 迁移到 Python 3

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

有关如何将大型代码库迁移到 Python 3 的更多信息,请参阅 Storageative Python 3 Porting Guide

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

40.6. 使用 Python

在运行 Python 解释器或 Python 相关命令时,总是指定版本。

先决条件

  • 确定安装了 Python 所需的版本。

流程

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

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

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

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

    $ python2
    $ python2 -m cython --help
    $ pip2 install package