由于CentOS系统默认使用的是Python2,升级到Python3后原来的一些系统软件就不可用了,需要做一些处理。
首先,一定要保留原来的Python2,不能覆盖掉了,否则系统所需Python2的软件都将无法正常使用。可以将Python3安装到/usr/local/python3下面,然后使用下面的命令做一个处理:
cd /usr/bin
mv python python2
ln -s /usr/local/python3/bin/python3 python3
ln -s python3 python
现在默认的python即升级为python3了。
此时,以下软件将不可使用:
1. yum
yum将会出现如下错误
从图中可以看出yum的绝对路径为/usr/bin/yum,直接
vim /usr/bin/yum
可以看到文件头部默认使用的python路径为/usr/bin/python
把第一行的
#!/usr/bin/python
改为
#!/usr/bin/python2
即可
2. 添加、删除软件
通过
系统=>管理=>添加/删除软件
打开,或者使用命令:
gpk-application
打开如下工具界面,可以看到里面根本没有软件包列表
可以通过
whereis gpk-application
查看其路径:
通过vim查看内容:
是一个二进制可执行文件,不是一个python文件。
要找出使用的python文件,可以把/usr/bin/python改为/usr/bin/python1,让系统找不到python,再打开“添加/删除软件”界面,发现报了如下错误,“更多详情”里有详细的文件路径。
原来该软件使用了/usr/share/PackageKit/helpers/yum/目录下的脚本,
进入该目录可以查看到使用了如下一些脚本文件:
使用vim打开前面报错的文件:
vim yumBackend.py
可以看到:
这里使用了/usr/bin/python,同样改为/usr/bin/python2。
其它几个文件也一同修改掉即可。
现在再次运行gpk-application,可以看到有软件包了。
3.setup
这是一个控制台的图形化配置工具。
防火墙配置脚本:
/usr/bin/system-config-firewall-tui
键盘配置脚本:
/usr/sbin/system-config-keyboard
网络配置脚本:
/usr/sbin/system-config-network-tui
验证配置脚本:
/usr/share/authconfig/authconfig-tui.py
把以上几个文件中的python改为python2即可
4.pip
安装了python3后建议把原来的pip改名为pip2,再建一个pip的软链接
mv /usr/bin/pip /usr/bin/pip2
ln -s /usr/bin/pip2 /usr/bin/pip
其它有遇到不正常的软件,也可以使用前面的方法进行修改。
祝好!