本教程将指导你在CentOS 7系统上安装Python 3,使用软件集合(SCL)和默认的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 v2.7.5旁边安装较新版本的Python 3.x,这样Yum等系统工具就能继续正常工作。
要启用SCL,你需要安装CentOS SCL发布文件。它是 CentOS 额外资源库的一部分,可以通过运行以下命令来安装。
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 虚拟环境允许你为一个特定的项目在一个孤立的位置安装 Python 模块,而不是全局安装。这样,你就不必担心影响其他的 Python 项目。
在 Python 3 中创建一个新的虚拟环境的首选方法是执行 venv 命令。
假设你想在你的用户主目录和匹配的虚拟环境中创建一个新的 Python 3 项目,名为 my_new_project。
首先,创建项目目录并切换到它。
mkdir ~/my_new_project
cd ~/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开始,在创建虚拟环境时,Pip,Python的软件包管理器被默认安装。
总结
现在您应该已经在您的 CentOS 7 机器上建立了 Python 3 编程环境,您可以开始开发您的 Python 3 项目。
您还可以阅读如何在CentOS 7上安装Odoo 11,并看到一个如何使用Python 3虚拟环境在CentOS 7服务器上运行Python软件的例子。
如果您有任何问题或反馈,请随时在下面评论。