社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

删除系统 Python 引发的惨案

编程派 • 5 年前 • 624 次点击  

这个案例告诉我们,千万不要动系统自带的 Python,Win系统除外

文 | fanzhenyu 出处 | http://fanzhenyu.cn/

由于无知,卸载 Ubuntu 自带的 python3 引发惨案,谨记,深刻反思。

惨案

由于实验需要使用 Python3.6 以上版本,于是决定卸载 Python3.5。

  1. # 卸载 python3.5

  2. $ sudo apt-get remove python3.5

没用,终端输入 python3 还是可以使用。于是,网上查找卸载python3.5的方法:

  1. # 卸载 python3.5 及其依赖

  2. $ sudo apt-get remove --auto-remove python3.5

  3. # 清除 python3.5

  4. $ sudo apt-get purge python3.5

or

  1. $ sudo apt-get purge --auto-remove python3.5

接下来,终端输入 python3 依然还是可以使用。

  1. # 删除链接

  2. sudo rm /usr/bin/python3

然后,突然发现侧边菜单栏变灰,感觉不对劲,重启。然后,侧边菜单栏不见了,右键连打开终端的选项都没有了。

于是,查找解决方案:

  1. # 切换到命令行模式

  2. ctrl+alt+t

  3. # 失败,再次尝试

  4. ctrl+alt+F1

  5. # 成功

  6. $ sudo apt install -f

  7. # 重新安装桌面

  8. $ sudo apt-get -f install ubuntu-minimal ubuntu-standard ubuntu-desktop

  9. # 重启

  10. $ sudo reboot

重启后,菜单栏又出现了。但是,终端依然没有。可以在 xterm 或者 中尝试安装:

  1. $ sudo apt install gnome-terminal

但是,一般是不起作用的,还是打不开。由于系统中很多软件都是依赖 python3,所以卸载了 python3 导致了系统崩溃。即使安装了 python3.6+ 并设置了 python3 的软连接,依然不行。

可以尝试重装 python3.5,然后设置 python3 软连接。也可以尝试以下方法:

  • https://blog.csdn.net/tao_627/article/details/91042809

  • https://blog.csdn.net/qs521/article/details/98945938

惨案发生后,即使菜单栏回来了,终端或许也能打开了,但是使用 apt 安装软件一直报 dpkg 的错误,找了很多方法也没有解决,所以还是决定重新装系统了。

正确安装 Python 3.6+

正确的方式就是不要轻易删除 python3 及其依赖。特别是不要删除依赖。在 Ubuntu16.04 中修改 python3 指向 3.6+ 版本以后,某些软件会无法使用,比如终端,需要使用上面连接的方法进行相应的处理。

这里编程派更推荐的方案是通过 pyenv 安装 3.6+版本。

安装 Python3.6+ 以上版本的正确姿势:

  1. # 从官网下载对应版本的源码

  2. https ://www.python.org/downloads/source/

  3. # 解压

  4. $ tar -zxvf xxxxx

  5. $ cd xxxx

  6. # 创建安装目录

  7. $ sudo mkdir -p /usr/local/python3

  8. # 配置、编译、安装

  9. $ ./configure --preifx=/usr/local/python3 --enable-optimizations

  10. $ make

  11. $ sudo make install

安装以后,不修改 python3 的指向,可以为 python3.6+ 版本指定不同的链接名:

  1. # 添加 python37 的软链接

  2. $ ln -s /usr/local/python3/bin/python3.7 /usr/bin/python37

  3. # 添加 pip3 的软链接(这样pip3就是python3.7专用的,也可以起名为 pip37,不影响python3.5的pip3)

  4. $ ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3

检测版本,查看是否成功:

  1. $ python37 -V

  2. $ pip3 - V

重新安装系统、软件、搭建实验环境,真的是心累啊。谨记,以后不要随便卸载系统自带软件,特别是不要相信某些博客写的彻底清除xxx及其依赖的操作。


回复下方「关键词」,获取优质资源


回复关键词「 pybook03」,立即获取主页君与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「入门资料」,立即获取主页君整理的 10 本 Python 入门书的电子版

回复关键词「m」,立即获取Python精选优质文章合集

回复关键词「book 数字」,将数字替换成 0 及以上数字,有惊喜好礼哦~


推荐阅读



题图:pexels,CC0 授权。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/49810
 
624 次点击