Ubuntu18.04变更自带的python3.6到3.7的方法以及终端打不开的解决方法

注意:如果不是特别必要(看到有的文章说编译某些程序需要特定版本,但没说为什么不能用conda创建的环境里的python)或者纯粹想折腾一下,不要去动主环境的python,会带来很多麻烦,尤其是对linux不熟悉的新手(比如我)。

这个方法算不上升级或更新python,只是把python3这个命令的软链接变更为python3.6或3.7(突然感觉做这件事没什么意义,甚至我找的方法可能是错误的思路),如果你知道真正意义上的升级python的方法或确实不能就地升级的原因请在评论区告诉我。

由于觉得这件事没什么意义(我实际上会使用conda管理包)、原装python版本似乎是和ubuntu的一些系统功能相关、时不时由Update-notifier报一些“系统程序出现问题”(我怀疑就是变更了python导致的),我决定把python版本换回默认的。

Ubuntu18.04变更自带的python3.6到3.7的方法以及终端打不开的解决方法_第1张图片

在用ubuntu18.04时发现自带的python是3.6,这当然能用,也可以通过conda装上不同版本的python,但我还是希望主环境的python是3.7,故记录一下这一过程。如果你没有这种强迫症,那么请使用conda来管理python版本,不要动主环境的python,否则会出现一连串的问题。

一、查看python版本

python3 -V
在这里插入图片描述
这一步如果我用python -V会显示没有装python,用python2 -V会显示没有装python2,在有的文章里会出现这两条,只是因为ubuntu版本不同,自带的python也不同(我装的这个版本就不自带python2.7)。

二、安装python3.7

sudo apt-get install python3.7

三、使用update-alternatives管理软件版本

update-alternatives用于在多个同功能的软件,或软件的多个不同版本间选择。
1、将python3.6和python3.7添加到update-alternatives:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
2、更新python3的指向(选择python3执行的是python3.7还是python3.6)
sudo update-alternatives --config python3
Ubuntu18.04变更自带的python3.6到3.7的方法以及终端打不开的解决方法_第2张图片
3、查看python版本
python3 -V
在这里插入图片描述

四、后续

1、可以直接用python3.6运行python3.6,用python3.7运行python3.7
2、切换成python3.6的时候,输入python仍提示没有安装python,但切换成python3.7的时候输入python则显示已安装但报错,现在我还没想通是什么原因,如果你知道请在评论区告诉我。
Ubuntu18.04变更自带的python3.6到3.7的方法以及终端打不开的解决方法_第3张图片
Ubuntu18.04变更自带的python3.6到3.7的方法以及终端打不开的解决方法_第4张图片
分别用python3.6和3.7查看,3.6是有apt_pkg这个包的,3.7则没有。报错的地方在/usr/lib/python3,而前面的路径写的是/usr/bin/python3。
Ubuntu18.04变更自带的python3.6到3.7的方法以及终端打不开的解决方法_第5张图片
3、直接点击终端的图标打不开终端,在桌面右键可以打开终端,在终端里输入gnome-terminal也会报错。
Ubuntu18.04变更自带的python3.6到3.7的方法以及终端打不开的解决方法_第6张图片

五、升级python后终端打不开的解决方法

进入路径:/usr/lib/python3/dist-packages/gi/
1)把_gi.cpython-36m-x86_64-linux-gnu.so改为_gi.cpython-37m-x86_64-linux-gnu.so
2)把_gi_cairo.cpython-36m-x86_64-linux-gnu.so改为_gi_cairo.cpython-37m-x86_64-linux-gnu.so

六、参考资料

https://www.itsupportwale.com/blog/how-to-upgrade-to-python-3-7-on-ubuntu-18-10/
https://blog.csdn.net/run_bear/article/details/88236685
https://blog.csdn.net/hellocsz/article/details/82701689

七、还没完

运行sudo apt-get update会和运行python报同样的错:No module named ‘apt_pkg’
Ubuntu18.04变更自带的python3.6到3.7的方法以及终端打不开的解决方法_第7张图片
根据网上的方法的前两步,结果给我把python2.7装上了。这时输入python就不会报错了,而是进入 python2.7的环境,但sudo apt-get update仍报错。这个方法的后两步把我吓到了。我点进去(cd /usr/lib/python3/dist-packages/)发现有一堆36(对应python3.6)。这次的问题是解决了,但不知道以后又会冒出什么问题。要是之后再提示/usr/lib/python3这个目录下的问题我就把python3.7卸载掉。
Ubuntu18.04变更自带的python3.6到3.7的方法以及终端打不开的解决方法_第8张图片

你可能感兴趣的:(ubuntu,python)