在前一篇博文
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...