首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python-apt包损坏: apt升级失败

python-apt包损坏: apt升级失败
EN

Ask Ubuntu用户
提问于 2020-12-17 14:27:14
回答 1查看 374关注 0票数 0

我在桌面上使用Ubuntu20.04.1。有可能,几个月前,我用python2文件重写了python3二进制文件,以使某些东西正常工作。(为什么任何正常的系统仍然安装python2?)

无论如何,我只是试图运行apt upgrade,但失败了,并将其归咎于python-apt包。

代码语言:javascript
复制
$ sudo apt upgrade

Preparing to unpack .../python-apt_2.0.0ubuntu0.20.04.2_amd64.deb ...
  File "/usr/bin/pyclean", line 63
    except (IOError, OSError), e:
                             ^
SyntaxError: invalid syntax
dpkg: warning: old python-apt package pre-removal script subprocess returned error exit status 1
dpkg: trying script from the new package instead ...
  File "/usr/bin/pyclean", line 63
    except (IOError, OSError), e:

SyntaxError: invalid syntax
dpkg: error processing archive /var/cache/apt/archives/python-apt_2.0.0ubuntu0.2
0.04.2_amd64.deb (--unpack):
 new python-apt package pre-removal script subprocess returned error exit status
 1
Traceback (most recent call last):
  File "/usr/bin/pycompile", line 35, in 
    from debpython.version import SUPPORTED, debsorted, vrepr, \
  File "/usr/share/python/debpython/version.py", line 24, in 
    from ConfigParser import SafeConfigParser
ModuleNotFoundError: No module named 'ConfigParser'
dpkg: error while cleaning up:
 installed python-apt package post-installation script subprocess returned error
 exit status 1
Errors were encountered while processing:
 /var/cache/apt/archives/python-apt_2.0.0ubuntu0.20.04.2_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

我试过清洗包裹,但也失败了:

代码语言:javascript
复制
$ apt purge python-apt
[...]
Do you want to continue? [Y/n] 
dpkg: error processing package python-apt (--remove):
 package is in a very bad inconsistent state; you should
 reinstall it before attempting a removal
dpkg: too many errors, stopping
Errors were encountered while processing:
 python-apt
Processing was halted because there were too many errors.
E: Sub-process /usr/bin/dpkg returned an error code (1)

二进制文件如下所示:

代码语言:javascript
复制
$ ll /usr/bin | grep python
-rwxr-xr-x  1 root   root           1057 Mar 13  2020 dh_python2*
lrwxrwxrwx  1 root   root             23 Aug  4 07:16 pdb2.7 -> ../lib/python2.7/pdb.py*
lrwxrwxrwx  1 root   root             23 Jul 28 08:59 pdb3.8 -> ../lib/python3.8/pdb.py*
lrwxrwxrwx  1 root   root             31 Mar 13  2020 py3versions -> ../share/python3/py3versions.py*
lrwxrwxrwx  1 root   root              7 Apr 15  2020 python -> python2*
lrwxrwxrwx  1 root   root              9 Mar 13  2020 python2 -> python2.7*
-rwxr-xr-x  1 root   root        5486352 Oct 25 14:14 python2.7*
lrwxrwxrwx  1 root   root              9 Mar 13  2020 python3 -> python3.8*
-rwxr-xr-x  1 root   root        5486352 Jul 28 08:59 python3.8*
-rwxr-xr-x  1 root   root            384 Mar 27  2020 python3-futurize*
-rwxr-xr-x  1 root   root            388 Mar 27  2020 python3-pasteurize*
lrwxrwxrwx  1 root   root             29 Mar 13  2020 pyversions -> ../share/python/pyversions.py*

这是我的版本信息:

代码语言:javascript
复制
$ python --version
Python 3.8.5
$ python2 --version
Python 3.8.5

Python2 one,考虑到/usr/bin中的符号链接,有点奇怪。有人有什么想法吗?

更新:我刚刚注意到错误信息的另一部分:

代码语言:javascript
复制
"ModuleNotFoundError: No module named 'ConfigParser'" 

我看到有人在网上写道,Python3将其称为“config分析器”(小写)。这就是问题所在吗?如果是的话,为什么其他人也没有经历过呢?

EN

回答 1

Ask Ubuntu用户

发布于 2020-12-17 18:04:17

由于某种原因,我需要重新创建Python2二进制文件。我在此页上找到了我的解决方案,下面是它的工作原理:

代码语言:javascript
复制
apt-get download python2.7-minimal
ar x python2.7-minimal_2.7.18-1~20.04_amd64.deb data.tar.xz
sudo tar xJf data.tar.xz -C / './usr/bin/python2.7'
rm data.tar.xz
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1300845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档