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命令测试,恢复正常
以后遇到此类的问题都可以这种方式解决