CentOS 7 安装 Python 3.8

写在前面

随着 CentOS 7 自带的 Python 2 越来越不够用了,我们需要升级到 Python 3 ,但是 yum 却依赖于自带的 Python 2 ,我们又不能将自带的 Python 2 卸载掉,而我又想要默认使用 Python 3 ,所以就想到了这个办法,让 Python 2 和 Python 3 共存,且默认使用 Python 3 ,又不影响 yum 的使用
本文章使用CentOS 7.6为例

一、下载 Python 3.8 源代码压缩包

截止至本文章完成时,使用yum安装的 Python 3 的版本依然是 3.6 ,所以我们要安装 Python 3.8 的话就需要下载源代码自己编译了
使用

1
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz

命令就可以下载到 Python 3.8 的源代码压缩包啦
时间可能比较久,需要耐心等待一下呢,下载结果的话就是像下面这样子啦:
下载结果

二、将压缩包解压

使用

1
tar zxf Python-3.8.0.tgz

命令将刚刚下载好的压缩包解压
解压结果就像下面这个样子啦:
解压结果
解压后我们先使用

1
cd Python-3.8.0

命令进入刚刚解压出来的目录

三、安装前的准备工作

在安装之前需要先编译源代码,而编译 Python 的源代码需要依赖于很多工具,所以我们要先准备一下
依次执行以下三条命令就可以啦(然而这将是一个漫长的过程):

1
yum update -y
1
yum groupinstall -y 'Development Tools'
1
yum install -y gcc openssl-devel bzip2-devel libffi-devel

四、编译与安装

执行

1
./configure

命令来进行编译(一定要在之前解压出来的 Python-3.8.0 目录下执行这条命令呀)
编译完成后,执行

1
make && make install

命令就可以开始安装啦(然而这将又会是一个漫长的过程……)

五、修改默认 Python 版本为 Python 3.8

虽然我们已经成功安装了 Python 3.8 ,但是系统默认使用的依然是 Python 2 ,所以我们还要设置一下默认使用的 Python 版本
进入/usr/bin目录,使用

1
ls -la python*

命令来查看 Python 相关的信息
Python 相关信息
我们发现,当我们使用python这条命令时,系统先是指向了python2,然后python2又指向了python2.7
我们先用

1
mv python python2.bak

命令将原来的python重命名为python2.bak
然后使用

1
ln -s /usr/local/bin/python3.8 /usr/bin/python

命令新建一个名为python的软链接,并配置其指向python3.8
就像这样:
python 软链接
最后使用

1
ln -s /usr/local/bin/pip3.8 /usr/bin/pip

命令新建一个名为pip的软链接,并配置其指向pip3.8
就像这样:
pip 软链接
现在我们默认使用的就是 Python 3.8 啦

六、修改 yum 配置文件

由于我们将默认的 Python 版本修改成了 Python 3.8 ,所以yum不工作了,我们需要修改一下yum的配置文件,让其重新工作起来
首先进入/usr/bin目录
使用

1
ls -la yum*

来查看 yum 相关的信息
yum 相关信息
编辑显示出来的所有文件,将这些文件开头的#!/usr/bin/python全部修改为#!/usr/bin/python2
修改完成后,将/usr/libexec/urlgrabber-ext-down文件也做同上面一样的修改
以上文件全部修改完成之后,yum就重新开始工作啦

七、结果

执行

1
python -V

1
pip -V

命令,结果就像这样:
结果
恭喜,你已经成功安装了 Python 3.8 啦!