在Ubuntu 16.04.6 LTS升级python 3.5.x到3.7.3之后导致gnome-ternimal无法打开的解决办法

在前一篇博文

https://blog.csdn.net/tao_627/article/details/90901830

中,我顺利将python 3.5.x升级到3.7.3,发现一切都正常,运行
python3 -V 和 pip3 -V 都是正常的,但是当我重启Ubuntu之后,就悲催地发现,终端打不开了,点击图标显示正在打开但并不能打开,使用Ctrl+alt+T也打不开,而且系统右上角有个红色实心圆圈中间一条白杠。

下面是我结合网上的资料和实操过程的经验分享,以作备忘。

具体定位终端报错的具体原因
现在既然终端不能使用,我们只能按Ctrl+Alt+F1,从图形界面切换到命令行模式,需要输入自己的用户名和密码进入,执行
gnome-terminal
从报错信息就能准确定位问题
$ gnome-terminal
Traceback (most recent call last):
  File "/usr/bin/gnome-terminal", line 9, in
    from gi.repository import GLib, Gio
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in
    from . import _gi
ImportError: cannot import name '_gi'

原因是没有_gi这个库,然后你把原来系统中的库改个名就可以。推测是昨天升级python3版本遗留的问题。

解决方法如下:
cd /usr/lib/python3/dist-packages/gi/
# 下面的35 改成37 表示从py3.5 改到py3.7,如果安装的是3.6就改成36
sudo mv _gi_cairo.cpython-35m-x86_64-linux-gnu.so  _gi_cairo.cpython-37m-x86_64-linux-gnu.so
sudo mv _gi.cpython-35m-x86_64-linux-gnu.so _gi.cpython-37m-x86_64-linux-gnu.so

如果python3安装到非默认目录下面,你还需整个gi目录拷贝到python3.7的安装目录下面:
cp -fr /usr/lib/python3/dist-packages/gi /usr/local/python3/lib/python3.7/site-packages/

再次在命令行下执行
$ gnome-terminal
此时应该就没有模块引用失败的问题了。

如何从命令行模式返回用户界面?
按Ctrl+Alt+F7 就可以了
无须重启系统,再次点击终端图标,应该就能顺利打开了。

反思

主要原因还是我升级python3.7.x导致的,下面的博文中说,使用

sudo make altinstall
make altinstall is used to prevent replacing the default python binary file /usr/bin/python.
可以避免这个问题,我没有实践,暂且先记录下来,后续有机会再尝试

https://tecadmin.net/install-python-3-6-ubuntu-linuxmint/


参考文献
[1].https://blog.csdn.net/Fei20140908/article/details/88168690
[2].https://blog.csdn.net/jaket5219999/article/details/78465251
[3].https://blog.csdn.net/threeyearsago/article/details/80276579

你可能感兴趣的:(Ubuntu)