我通过将 python3 设为默认值来破坏软件更新程序

To *_* Do 5 python symbolic-link

我试图通过运行以下命令使 Python 3 成为默认的 Python 版本:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
Run Code Online (Sandbox Code Playgroud)

这破坏了 Python 2 程序,所以我尝试反转这个过程,最后我尝试了:

sudo update-alternatives --install /usr/bin/python python2.7 /usr/bin/python2.7 10
Run Code Online (Sandbox Code Playgroud)

这使python2.7默认的 Python 版本但软件更新程序不运行并aptdcon在终端中运行给出:

bash: /usr/bin/aptdcon: /usr/bin/python3: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我尝试重新安装 Python 3,但得到了:

Errors were encountered while processing:
 /var/cache/apt/archives/python3_3.4.0-0ubuntu2_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Run Code Online (Sandbox Code Playgroud)

我如何恢复这个烂摊子?

To *_* Do 5

我设法自己解决了这个问题。问题是损坏的符号链接/usr/bin

首先我确定了 python3 在哪里。我猜想 python3 二进制文件将位于与 python2 类似的文件夹中。所以我输入了ls -l /usr/bin/python.

这给了我/usr/bin/python -> /etc/alternatives/python2.7

由于/etc/alternatives/没有python3,我重复了这个过程

ls -l /etc/alternatives/python2.7

/etc/alternatives/python2.7 -> /usr/bin/python2.7

一个简单的ls /usr/bin/python3.[1-9]列出了所有可用的 python 二进制文件。我感兴趣的是python3.4

然后我简单地创建了一个符号链接sudo ln -s /usr/bin/python3.4 /usr/bin/python3

问题解决了。