ubuntu16.04,卸载系统自带的 python3.5 引发了一宗惨案,好在最终完美解决_木元心的博客 - CSDN 博客
date
Nov 17, 2021
Last edited time
Nov 20, 2021 02:15 PM
status
Published
slug
ubuntu1604卸载python3后的处理方式
tags
Linux
summary
ubuntu16.04卸载python3后的处理方式
转载
type
Post
origin
Field
Plat
!如果着急解决问题,建议直接跳到【解决问题】章节
文章目录
- 背景安装 python3.6设置 python 优先级设置 python 关联版本为 python 安装对应的 pip卸载 python3.5悲剧发生解决问题重新安装 Ubuntu 桌面修改 gi 库名及安装 gi更改 gnome-terminal 文件成了!
背景
由于项目需求,在调试代码的时候发现一个由 python 版本导致的错误(Ubuntu16.04 python3.5m/pybind11/detail/internals.h:110:34: error: ‘nullptr),同事用的 python3.6 没问题,而我虚拟机上只装了 python2.7 和 python3.5,所以第一反应是安装 python3.6。顺便附一下 python3.6 安装过程(尝试用源码编译,但会报错,没深究)
安装 python3.6
Ubuntu16.04 的软件仓库(源)中 python 的最高版本就是 python3.5,所以无法直接用 apt 来安装
设置 python 优先级
设置 python 关联版本
在终端输入 python,会默认使用你设置的版本,但是如果你想在终端输入 python 时显示 2.7 的版本,输入 python3 时才是你想要的版本时,你就需要关联一下版本。有时候安装了 python3 版本,但是在终端输入 python3 时却提示
则需要进行下面操作
为 python 安装对应的 pip
如果 pip3 需要升级,但用常用方法升不了级时,可参考这篇帖子【Ubuntu16.04 升级 pip 问题】you are using pip version 8.1.1, however version 20.0.2 is available.
卸载 python3.5
言归正传,在安装了 python3.6,并且设置完优先级和关联版本后,再次编译还是报一样的问题,还是去找了 python3.5 下面的库,应该是即使装了 python3.6,但并没有创建软链接什么的造成的。当时无知,就决定卸载 python3.5,想着 3.5 也是后面才装的,系统默认安装的是 python2.7。
卸载命令
悲剧发生
然后悲剧发生了,我把终端关闭后就再也无法打开了(terminator 和 gnome-terminal 都打不开),原本在任务行添加的 terminator 和 gnome-terminal 都没了。重启虚拟机,菜单栏、任务栏都没了,就只能看到壁纸了。alt + ctrl + t 也不能打开终端,好在能进字符界面,也能通过 ssh 远程连接。
解决问题
最开始怀疑是图形界面的服务出了问题,于是决定重启 lightdm 服务试一试
事实证明问题不在这,重启服务后跟刚重启虚拟机的时候效果是一样的。
因为是卸载 python3.5 造成的,所以决定重新安装 python3.5,Ubuntu16.04 的源有包含 3.5 的版本,所以安装很简单
重新安装 Ubuntu 桌面
安装完,reboot,无效。于是决定重新安装 gnome 桌面
然后 reboot,菜单栏和任务栏回来了!但终端还是不能通过快捷键起来,双击图标也不能启动,能用的终端只有 xterm,在 xterm 端输入 gnome-terminal 报错
修改 gi 库名及安装 gi
这错误之前没见过,遂百度之,得到解决方案(这一步是需要的,虽然不一定能立马解决问题)
看的那篇帖子只说了这么解决,但没说为什么,但事实上我用这方法也并不能解决,后面才了解到为什么要这么改:
下面的 35 改成 36 表示从 py3.5 改到 py3.6,如果安装的是 3.7 就改成 37
更改 gnome-terminal 文件
接下来,需要修改 gnome-terminal 文件以及 terminator 文件(我安装了 terminator)关于 terminator,可参考这篇博客 Ubuntu 下的终端设置(分清 Terminal 与 Terminator)-Terminator 个性化主题设置
成了!
至此,两个终端都可以正常打开了,重新添加到任务栏也没问题了,用快捷键打开也 ok 了。
另外,除了重新安装了一下依赖于 python3 的软件后暂时没遇到其他后续影响。如果有后续影响,将在本篇博客下更新。