一位朋友试图帮助另一位朋友安装 Ubuntu 18.04,但不知何故(据我所知)删除了 Python 2。这似乎导致apt
,apt-get
和dpkg -i
损坏。为了尝试修复问题,我最初认为我们可以手动下载 Python 2 DEB 包(https://packages.ubuntu.com/bionic/amd64/python2.7/download),但随后我们当然遇到了dpkg -i
运行(py_compile.py
语法错误)的问题。例如,apt
抛出如下错误:
Traceback (most recent call last):
File "/usr/bin/pycompile", line 35, in <module>
from debpython.version import SUPPORTED, debsorted, vrepr, \
File "/usr/share/python/debpython/version.py", line 24, in <module>
from ConfigParser import SafeConfigParser
ModuleNotFoundError: No module named 'ConfigParser'
这告诉我,这个可怜的、混乱的系统正在尽力在某些 Python 2 代码(apt
以及dpkg
整个系统的一部分)上运行 Python 3。
所以现在我在想我们可以创建一个虚拟环境,安装了它自己的 Python 2 可执行文件,并告诉系统使用它(通过模拟链接/usr/bin/python
到虚拟环境 Python 可执行文件)以便dpkg -i
在我们在此处下载的正确的 Python 2 包上运行。
这会让事情变得更糟吗?或者这是一件值得尝试的合理的事情?
编辑:终端输出ll /usr/bin/python*
:
lrwxrwxrwx 1 root root 9 Apr 16 15:31 /usr/bin/python -> python2.7*
lrwxrwxrwx 1 root root 9 Apr 16 15:31 /usr/bin/python2 -> python2.7*
-rwxr-xr-x 1 root root 4576440 Sep 21 14:09 /usr/bin/python2.7*
lrwxrwxrwx 1 root root 33 Apr 15 22:51 /usr/bin/python2.7-config -> x86_64-linux-gnu-python2.7-config*
lrwxrwxrwx 1 root root 9 Jun 21 22:52 /usr/bin/python3 -> python3.6*
-rwxr-xr-x 2 root root 4567672 Sep 12 19:26 /usr/bin/python3.6*
lrwxrwxrwx 1 root root 33 Sep 12 19:26 /usr/bin/python3.6-config -> x86_64-linux-gnu-python3.6-config*
-rwxr-xr-x 2 root root 4567672 Sep 12 19:26 /usr/bin/python3.6m*
lrwxrwxrwx 1 root root 34 Sep 12 19:26 /usr/bin/python3.6m-config -> x86_64-linux-gnu-python3.6m-config*
lrwxrwxrwx 1 root root 16 Jun 21 22:52 /usr/bin/python3-config -> python3.6-config*
lrwxrwxrwx 1 root root 10 Jun 21 22:52 /usr/bin/python3m -> python3.6m*
lrwxrwxrwx 1 root root 17 Jun 21 22:52 /usr/bin/python3m-config -> python3.6m-config*
需要注意的是,当运行python
、python2
和python2.7
中的任何命令时,它们都会启动 Python 3.6。
答案1
您可以通过以下方式重新安装所有软件包:
sudo apt install --reinstall ubuntu-desktop