目录

已解决-误删Ubuntu下自带的Python3和3.4怎么办-解决dpkg-error-processing-xxx-configure错误

[已解决] 误删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的过程记录在: [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) 这样的错误信息。具体信息描述可以参考: (因为我当时没有详细记录下来).

大概是这样:

https://i-blog.csdnimg.cn/blog_migrate/a7dc29b0e34d957758db6f438ce4a450.png

2 解决方案

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

昨天也想了一天,没明白怎么办。网上都说要重装系统,但是:一来我不熟悉重装系统的细节(不知道怎么保留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 购票助手

[2] Ubuntu安装Python3.6并切换到3.6版本

[3] 完全卸载python for Ubuntu 14.04

[4] Accidentally deleted /usr/lib/python3.4

[5] sudo apt-get and most commands don’t work

[6] Broken dependencies after upgrade

[7] [SOLVED] A Packages Problem,Unable to install anything due to unconfigured and depandesies

[8] Can’t install python3 on Ubuntu 18.04

[9] dpkg returns error when installing python package (Debian)

[10] Cannot install ANY packages because of Python