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 的话就需要下载源代码自己编译了
使用
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz命令就可以下载到 Python 3.8 的源代码压缩包啦
时间可能比较久,需要耐心等待一下呢,下载结果的话就是像下面这样子啦: 
二、将压缩包解压
使用
tar zxf Python-3.8.0.tgz命令将刚刚下载好的压缩包解压
解压结果就像下面这个样子啦:
解压后我们先使用
cd Python-3.8.0命令进入刚刚解压出来的目录
三、安装前的准备工作
在安装之前需要先编译源代码,而编译 Python 的源代码需要依赖于很多工具,所以我们要先准备一下
依次执行以下三条命令就可以啦(然而这将是一个漫长的过程):
yum update -yyum groupinstall -y 'Development Tools'yum install -y gcc openssl-devel bzip2-devel libffi-devel四、编译与安装
执行
./configure命令来进行编译(一定要在之前解压出来的 Python-3.8.0 目录下执行这条命令呀)
编译完成后,执行
make && make install命令就可以开始安装啦(然而这将又会是一个漫长的过程……)
五、修改默认 Python 版本为 Python 3.8
虽然我们已经成功安装了 Python 3.8 ,但是系统默认使用的依然是 Python 2 ,所以我们还要设置一下默认使用的 Python 版本
进入/usr/bin目录,使用
ls -la python*命令来查看 Python 相关的信息
我们发现,当我们使用python这条命令时,系统先是指向了python2,然后python2又指向了python2.7
我们先用
mv python python2.bak命令将原来的python重命名为python2.bak
然后使用
ln -s /usr/local/bin/python3.8 /usr/bin/python命令新建一个名为python的软链接,并配置其指向python3.8
就像这样:
最后使用
ln -s /usr/local/bin/pip3.8 /usr/bin/pip命令新建一个名为pip的软链接,并配置其指向pip3.8
就像这样:
现在我们默认使用的就是 Python 3.8 啦
六、修改 yum 配置文件
由于我们将默认的 Python 版本修改成了 Python 3.8 ,所以yum不工作了,我们需要修改一下yum的配置文件,让其重新工作起来
首先进入/usr/bin目录
使用
ls -la yum*来查看 yum 相关的信息
编辑显示出来的所有文件,将这些文件开头的#!/usr/bin/python全部修改为#!/usr/bin/python2
修改完成后,将/usr/libexec/urlgrabber-ext-down文件也做同上面一样的修改
以上文件全部修改完成之后,yum就重新开始工作啦
七、结果
执行
python -V和
pip -V命令,结果就像这样:
恭喜,你已经成功安装了 Python 3.8 啦!