[已解决] 误删Ubuntu下自带的Python3和3.4怎么办?—— 解决dpkg: error processing xxx (--configure)错误

前言

昨天一时冲动卸载,删掉了Ubuntu 14.04 系统下的 Python 3和3.4,然后运行apt-get 指令来安装或者更新程序的时候,不停出现 dpkg: error processing xxx (--configure)E: Sub-process /usr/bin/dpkg returned an error code (1) 这样的错误信息。我就知道自己删掉Python3引发了系统功能缺失停用。。。

本文旨在解决此问题。

我认为这个方案不仅适用于Ubuntu 14,对16版本也同样有效,值得一看。

1 问题描述

问:我为什么要删Python3和3.4呢?
答:首先,我的Ubuntu 14.04系统上默认自带了Python2.7版本和Python3.4版本。但是我现在需要安装Python3.6版本来运行程序(一个12306 抢票软件 [1]),我安装Python3.6的过程记录在: https://blog.csdn.net/weixin_39278265/article/details/87659130 [2] 中。

然后自然要开始安装Python3.6需要的pip,为此,我使用了apt-get install python3-pip 的指令来安装pip。
但是呢,我在用pip install指令安装Python包的时候,发现安装的包都默认放在了/usr/local/lib/python3.4/dist-packages文件夹的路径下,很神奇…

所以气恼之下,我直接输入 [3]:

sudo apt-get remove --purge python3.4
sudo apt-get remove --auto-remove python3.4
sudo apt-get purge --auto-remove python3.4

然后我发现/usr/lib/下面还有pythonpython3.4文件夹;/usr/local/lib下面还有python3.4文件夹。为了彻底删除,我直接把这些文件夹都删了。。。可以说是很彻底了。

然后,我就发现有点不对劲了,使用sudo apt-get upgrade或者sudo apt-get -f install,就会出现包含:dpkg: error processing xxx (--configure)E: Sub-process /usr/bin/dpkg returned an error code (1)这样的错误信息。具体信息描述可以参考:[4 - 10] (因为我当时没有详细记录下来).

大概是这样:
[已解决] 误删Ubuntu下自带的Python3和3.4怎么办?—— 解决dpkg: error processing xxx (--configure)错误_第1张图片

2 解决方案

看了这么多参考文献 [4 - 10] ,没有找到满意的解决方案。

昨天也想了一天,没明白怎么办。网上都说要重装系统,但是:一来我不熟悉重装系统的细节(不知道怎么保留Ubuntu的分区,格式化某个分区。这个操作还不太会),二来重装还是很麻烦的。所以我没有这样做。

今早,起来之后,把自己另外一台Ubuntu 14.04 系统的python文件夹拷贝到自己出现问题的Ubuntu 16.04指定路径下,然后神奇的发现ok了!!!。。。(即无以上错误出现)

真的震惊。我就只是简单的复制粘贴文件夹而已。

这里详细记录下步骤:
1)从一台好的Ubuntu系统(我的是Ubuntu 14.04)中拷贝出如下文件夹:

  • /usr/lib/python3
  • /usr/lib/python3.4
  • /usr/local/lib/python3.4
    2)然后粘贴到自己这台出问题的Ubuntu系统上(我的是Ubuntu14.04):
    注意:粘贴后,要确保这些粘贴过来的python文件夹目录和正常的Ubuntu系统的路径是一致的。
  • /usr/lib/python3
  • /usr/lib/python3.4
  • /usr/local/lib/python3.4

然后就可以了。
即:现在在运行apt-get安装指令或者pip install之类的指令都没问题了,一切恢复正常。

3 思考

其实这个解决方案的思路等价于备份python文件夹
但是我在误删的时候根本没想到会导致系统问题,所以没有备份
但是可以想到,因为python3和3.4是Ubuntu系统自带的软件,一般各个正常Ubuntu系统中的python3和3.4的文件夹都应该是一样的,所以直接拷贝过来,理论上是可行的。

实践也是如此。

参考文献

[1] py12306 购票助手 https://github.com/pjialin/py12306
[2] Ubuntu安装Python3.6并切换到3.6版本 https://blog.csdn.net/weixin_39278265/article/details/87659130
[3] 完全卸载python for Ubuntu 14.04 https://www.cnblogs.com/songfucai/p/7976623.html

[4] Accidentally deleted /usr/lib/python3.4 https://askubuntu.com/questions/711095/accidentally-deleted-usr-lib-python3-4
[5] sudo apt-get and most commands don’t work https://ubuntuforums.org/showthread.php?t=2312981
[6] Broken dependencies after upgrade https://askubuntu.com/questions/316189/broken-dependencies-after-upgrade
[7] [SOLVED] A Packages Problem,Unable to install anything due to unconfigured and depandesies https://ubuntuforums.org/archive/index.php/t-2148838.html
[8] Can’t install python3 on Ubuntu 18.04 https://unix.stackexchange.com/questions/457411/cant-install-python3-on-ubuntu-18-04
[9] dpkg returns error when installing python package (Debian) https://unix.stackexchange.com/questions/437788/dpkg-returns-error-when-installing-python-package-debian
[10] Cannot install ANY packages because of Python https://superuser.com/questions/1266423/cannot-install-any-packages-because-of-python

你可能感兴趣的:(研二上学期寒假)