在前一篇博文

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 <module>
    from gi.repository import GLib, Gio
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module>
    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 16.04.6 LTS升级python 3.5.x到3.7.3之后导致gnome-ternimal无法打开的解决办法相关推荐

  1. ubuntu 16.04使用IntelRealSense D435i调用realsense ROS包时,报symbol lookup error和undefined symbol错误的解决办法

    在ubuntu 16.04使用IntelRealSense D435i调用realsense ROS包时,运行 roscore roslaunch realsense2_camera rs_rgbd. ...

  2. 在Ubuntu 16.04.6 LTS上升级python 3.5到3.7.3实录

    缘由 我想安装一个python模块you-get,发现只能使用pip3安装,但是我发现我的Ubuntu 16.04.6 LTS上有python3.5,但是没有pip3,也无法成功安装,真是要了我的老命 ...

  3. 在Ubuntu 16.04.5 LTS上升级python的pip版本实录

    在ubuntu 16.04.5 LTS上使用Python安装模块时,比较顺手的方法是使用pip命令.这次,我在安装一个模块时,老是提示下面的问题,比较不爽.所以,我就照着提示做了一遍,记录下来,以作备 ...

  4. 在Ubuntu 16.04.6 LTS上升级Go到最新版1.12.5实录

    上一次我在Ubuntu 16.04.3 LTS上从源码安装了Go,当时最新的版本是1.10,参见我之前的博文 https://blog.csdn.net/tao_627/article/details ...

  5. 在Ubuntu 16.04.5 LTS上利用python中的PIL模块压缩一百多兆的单张图片实操

    在前面的博文中,我将300多张电影海报拼接为了一张103MB的巨幅图片,我想拿它做电脑桌面(1080P),但是这么多的图片,存储和加载是个麻烦事儿,需要将它压缩到几MB大小. 在Ubuntu 16.0 ...

  6. 在Ubuntu 16.04.6 LTS上安装python3.7和pip3后出现Command '('lsb_release', '-a')' 出错问题的解决方法

    在Ubuntu 16.04.6 LTS上安装python3.7和pip3后出现Command '('lsb_release', '-a')' returned non-zero exit status ...

  7. 在Ubuntu 16.04.3 LTS上运行go+https+json示例

    下面是我依据网上资料的实操过程,记录以作备忘.该示例给出了https通信并处理json文件的例子. 平台:Ubuntu 16.04.3 LTS go版本:1.10 1.生成自签名的服务器端的私钥KEY ...

  8. 在Ubuntu 16.04.3 LTS上玩转quic-go项目

    说明 quic-go是使用Go来重写chromium中的QUIC协议,将来计划过渡到IETF版本的QUIC协议. 目前该协议还处于不断更新和活跃之中,目前IETF版本的QUIC协议草案版本号已经到dr ...

  9. Ubuntu 16.04.6 LTS 发布:紧急修复 APT 漏洞

    Ubuntu 16.04 LTS (Xenial Xerus) 操作系统上周发布了第6个维护版本更新,以解决近期发现的 APT 漏洞. 正如早些时候报道的那样,Canonical 开始为其 Ubunt ...

最新文章

  1. Leetcode 121 动态规划(原名字不通过审核)
  2. RESTful Web 服务 - 安全性
  3. 浅谈缓存最终一致性的解决方案
  4. zookeeper在windows下设置为服务启动(不需双击zkServer.cmd)
  5. 排序——冒泡排序及其改进版本
  6. Charles(网络封包分析工具)
  7. 23. 变量、作用域和内存问题
  8. Mysql之wait_timeout参数生效办法
  9. linux交叉编译libnet,交叉编译samba(mipsel-linux) samba-3.3.3.tar.gz
  10. 【转】关于ATSC制数字电视机顶盒的…
  11. 随手写了些java题目的答案
  12. git clone失败:Cloning into... fatal: unable to access... error setting certificate verify locations
  13. Unity3D模型中的SubMesh
  14. supervisor> restart bili:create_bili_index bili:create_bili_index: ERROR (not running) bili:create_b
  15. 算法笔记(599. 两个列表的最小索引总和)
  16. 所有外包项目威客网站列表----来自程序员接私活网qxj.me
  17. java基础巩固-宇宙第一AiYWM:为了维持生计,架构知识+分布式微服务+高并发高可用高性能知识序幕就此拉开(一:总览篇)~整起
  18. 8个问题带你搞懂《小门神》背后的技术
  19. cpc按点击计算怎么算_百度竞价CPC是如何计算的?
  20. 你了解c++中的关键字virtual吗?

热门文章

  1. jQuery搜索框自动补全功能插件实现-autocomplete.js
  2. 中国大巴租赁行业市场前瞻与投资战略规划分析报告
  3. iphone html邮件发送,html – iPhone邮件:由于锚标记,表格不会延伸到100%?
  4. Go 学习笔记(19)— 函数(05)[如何触发 panic、触发 panic 延迟执行、panic 和 recover 的关系]
  5. jquery-tmpl 插件
  6. 读书笔记2013第13本:《怎样解题》
  7. java 毫秒转时间字符串_java 时间字符串 转换 毫秒
  8. opencv java 灰度_如何使用Java将图像转换为灰度?
  9. word2013插入excel对象报错_修改Word文档中嵌入的Excel对象
  10. java的对象是什么意思_Java中对象和对象引用的区别,引用、指向是什么意思