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

在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

更多相关:

  • 缘由 我想安装一个python模块you-get,发现只能使用pip3安装,但是我发现我的Ubuntu 16.04.6 LTS上有python3.5,但是没有pip3,也无法成功安装,真是要了我的老命!网上调研一番后,发现直接从python的官网下载最新的python3.7的源码来升级python3这个思路是最可行的办法。因为pyt...

  • 环境:centos7.5 ceph版本:12.2.1 在当前环境对ceph源码rpm包进行重新编译 执行命令rpmbuild --rebuild ceph-12.2.1-0.el7.src.rpm 最后出现错误如下: Could not find cython3. Please install Cython. 查看此时对Cytho...

  • 我也遇到过这个问题.这可能不是理想的方式,但它有效.我做了以下事情来解决这个问题 –sudo apt-get install python3-gdbm这为python3安装了gdbm库,但是因为apt-get和anaconda是两个独立的包管理器;这不会解决你的问题.我们主要这样做是为了获取.so共享库,我们将把它放在我们的anaco...

  • 1、去官网下载和自己系统匹配的文件:  英文网址:https://nodejs.org/en/download/  中文网址:http://nodejs.cn/download/  通过  uname -a  命令查看到我的Linux系统位数是64位(备注:x86_64表示64位系统, i686 i386表示32位系统),如图...

  • 一、简介 LLVM LLVM(之前称为低级虚拟机Low Level Virtual Machine)是一种非常强大的编译器基础架构框架,专门为使用您喜爱的编程语言编写的程序的编译时、链接时和运行时优化而设计。LLVM 可运行于若干个不同的平台之上,它以能够生成快速运行的代码而著称。 LLVM以C++编写而成,对开发者保持开放,并...

  • Ubuntu 12.04 64bit中安装firefox 26中的flash player插件的方法 昨天, 有最新的firefox 26更新了,可是我在软件更新中无法下载到ubuntu官方源中的flash plugin,详细的情况可以参见如下网页,这个问题我一年前也遇到过,特记录下来,以备后来查阅. http://blog....

  • 问题:使用 QT 编写视频展现程序报错找不到运行时库文件 解决办法: 首先 sudo find / -name libpulse.so* 然后 sudo cp /usr/lib/x86_64-linux-gnu/libpulse.so.0 /usr/lib/libpulse.so 对于libpulse-mainloop-glib...