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这条命令时,系统先是指向了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
就像这样:
最后使用
1 | 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目录
使用
1 | ls -la yum* |
来查看 yum 相关的信息
编辑显示出来的所有文件,将这些文件开头的#!/usr/bin/python全部修改为#!/usr/bin/python2
修改完成后,将/usr/libexec/urlgrabber-ext-down文件也做同上面一样的修改
以上文件全部修改完成之后,yum就重新开始工作啦
七、结果
执行
1 | python -V |
和
1 | pip -V |
命令,结果就像这样:
恭喜,你已经成功安装了 Python 3.8 啦!