本教程将指导您在 CentOS 7 系统上使用软件集合(SCL)安装 Python 3,同时保留发行版默认的 Python 2.7 版本。我们还将向您展示如何创建 Python 虚拟环境。
Python 是世界上最受欢迎的编程语言之一。凭借其简单且易于学习的语法,Python 是初学者和经验丰富的开发者的绝佳选择。Python 是一种功能非常强大的编程语言。您可以用它来做几乎任何您想做的事情:编写小型脚本、构建游戏、开发网站、创建机器学习算法、分析数据等。
许多流行的应用程序和网站,包括 YouTube、DropBox、Reddit、Quora、Instagram、Pinterest 都是使用 Python 开发的。
Python 2 的支持将于 2020 年结束。Python 3 是该语言现在的和未来。
启用软件集合(SCL)
软件集合,也称为 SCL,是一个社区项目,允许您在同一系统上构建、安装和使用多个版本的软件,而不会影响系统默认包。通过启用 SCL,您将能够访问核心存储库中不可用的编程语言和服务的新版本。
CentOS 7 自带 Python 2.7.5,这是 CentOS 基础系统的关键部分。SCL 允许您安装较新版本的 python 3.x,与默认的 python v2.7.5 共存,以便系统工具(如 yum)可以继续正常工作。
要启用 SCL,您需要安装 CentOS SCL 发行版文件。它是 CentOS extras 存储库的一部分,可以通过运行以下命令进行安装:
终端
sudo yum install centos-release-scl在 CentOS 7 上安装 Python 3
现在您已访问 SCL 存储库,可以安装任何所需的 Python 3.x 版本。目前,可用的 Python 3 集合如下:
- Python 3.3
- Python 3.4
- Python 3.5
- Python 3.6
在本教程中,我们将安装 Python 3.6,这是撰写本文时可用的最新版本。为此,请在您的 CentOS 7 终端输入以下命令:
终端
sudo yum install rh-python36使用 Python 3
安装完包 rh-python36 后,通过输入以下内容检查 Python 版本:
终端
python --version输出
Python 2.7.5您会注意到 Python 2.7 是您当前 shell 中的默认 Python 版本。
要访问 Python 3.6,您需要使用软件集合 scl 工具启动新的 shell 实例:
终端
scl enable rh-python36 bash上述命令的作用是调用脚本 /opt/rh/rh-python36/enable,该脚本会更改 shell 环境变量。
如果再次检查 Python 版本,您会注意到 Python 3.6 现在是您当前 shell 中的默认版本。
终端
python --version输出
Python 3.6.3重要的是要指出,Python 3.6 仅在此 shell 会话中设置为默认 Python 版本。如果您退出会话或从另一个终端打开新会话,Python 2.7 将是默认 Python 版本。
安装开发工具
构建 Python 模块需要开发工具。要安装必要的工具和库,请输入:
终端
sudo yum groupinstall 'Development Tools'创建虚拟环境
Python Virtual Environments 允许您在特定项目的隔离位置安装 Python 模块,而不是全局安装。这样,您就不必担心影响其他 Python 项目。
在 Python 3 中创建新虚拟环境的推荐方法是执行 venv 命令。
假设您想在用户主目录内创建一个名为 my_new_project 的新 Python 3 项目以及匹配的虚拟环境。
首先,创建项目目录并切换到该目录:
终端
mkdir ~/my_new_projectcd ~/my_new_project使用 scl 工具激活 Python 3.6:
终端
scl enable rh-python36 bash在项目根目录内运行以下命令创建名为 my_project_venv 的虚拟环境:
终端
python -m venv my_project_venv要开始使用虚拟环境,请通过输入以下内容激活它:
终端
source my_project_venv/bin/activate激活环境后,shell 提示符将以前缀形式显示环境的名称:
(my_project_venv) user@host:~/my_new_project$从 Python 3.4 开始,创建虚拟环境时,Python 的包管理器 pip 默认会进行安装。