Linux升级默认的python版本,解决默认python升级后yum无法使用的问题--通过源码安装,适用于所有系统

Linux默认的python版本是2.7.5,可以使用python -V查看

 

我们工作中可能需要更高的版本的python,所以这里向大家介绍下自己升级的过程,以CentOS7.5为例

下载python源码包

在官网下载源码包,这里以python3.9.10为例

python官网:https://www.python.org/

下载地址:https://www.python.org/downloads/

选择自己想要的版本,点击后面的Download

 

 

将鼠标悬在文件上右键单击,复制链接地址

也可以直接左键单击,下载到本地,再从本地上传至服务器

 

 

打开终端,使用ssh命令登陆终端,建议使用root用户或者是拥有sudo权限的用户,因为后面会用到

使用wget命令下载源码,等待下载完成,下载速度取决于网速

wget https://www.python.org/ftp/python/3.9.10/Python-3.9.10.tar.xz

 

 

解压下载的源码包并安装

使用 tar 命令解压,在解压的时候使用 -C 参数指定解压之后的位置

 tar -xvf Python-3.9.10.tar.xz -C /usr/local/

参数解释:

-x  从归档中解出文件

-v  详细地列出处理的文件

-f  使用归档文件或 ARCHIVE 设备

-C  改变至目录/usr/local/

 

 

 

使用 cd 命令切换至 /usr/local/ 下,使用 ls 可以看到有一个 Python-3.9.10 的目录,这就是我们刚刚解压出来的文件目录

 

 

我习惯用mv重命名一下,命名成python,方便我们使用,也可以不做

使用 cd 命令进入目录,可以使用 ls 看到所有的文件

 

使用yum安装编译环境

yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel gcc-c++ gcc xz

 

使用 ./configure 配置python

configure是解压目录下的一个文件,必须要解压之后才有,这一步必须在我们解压出来的目录里执行

./configure

 

 

等待执行完成后开始编译并安装
make && make install

make 表示编译

make install 表示安装

&& 表示前面的命令执行成功再执行后面的命令

 

 

 

出现这样的效果就说明我们安装成功了,在终端输入python,然后使用table键就可以看到所有以python开头的命令了

 

 

因为我们安装的是python3.9.10,所以这个python3命令才是我们刚刚安装的python

使用 python3 -V 查看版本,可以看到正是我们安装的3.9.10版本

 

 

注意:虽然此时安装已经完成,但只是我们的设备中已经有了python3的环境,默认的python环境还是python2

可以使用 python -V 命令查看默认的python环境

 

 

修改默认python环境

使用whereis查看python命令来源

whereis python

 

 

可以看到是来自/usr/bin/python这个文件

使用 ll 命令查看这个文件的信息

ll /usr/bin/python

 

 

可以发现这个文件是一个软连接文件,源文件是相同路径下的python2文件

同样使用 ll 查看这个文件

 

同样是哥软连接文件,使用相同的方式查看,这里不再赘述

 

 

通过观察我们发现,/usr/bin/python文件是一个软连接,它的来源是/usr/bin/python2.7这个文件

我们只需要修改这个软连接就好

 

使用相同的方式找到我们的python3命令的文件

 

 

删除原来的/usr/bin/python文件,切记不要删错,不要删错,不要删错

rm -f /usr/bin/python

 

使用ln命令创建新的连接文件,使/usr/bin/python指到我们的python3文件

ln -s /usr/local/bin/python3.9 /usr/bin/python

 

 

 

这时我们再查看默认python环境

 

 

至此我们已经完成了默认python环境的修改

 

解决升级后yum无法使用的问题

将默认python环境升级后,我们如果使用yum命令就会发现,yum无法正常使用了,报错如下:

 

 

这是因为我们使用的yum是python2的语法写的,我们修改将默认的python环境修改为python3,就会导致使用python3的解释器去执行python2的代码,python3和python2在语法上还是有一些不同的,所以无法执行,就会导致我们的yum报错

这也是为什么Linux会默认安装了python2,因为有很多的系统命令是使用python2开发的

 

通过报错我们可以知道,这是/usr/bin/yum这个文件有问题,我们使用vim或者vi编辑器打开这个文件

 

 

从第一行可以看到解释器为/usr/bin/python,但是我们已经将这个文件替换成了python3,所以我们只需要修改这个文件的解释器为python2就好,保存退出

 

 

使用yum命令测试,恢复正常

 


以后遇到此类的问题都可以这种方式解决