尝试安装 python2 包时出错

尝试安装 python2 包时出错

我在 Kubuntu 19.10 上,我从源代码构建了 python 3.8,并使用 checkinstall 安装了它。然后我删除了它,它不知何故破坏了 python 2.7。如果我尝试安装任何python-*软件包,它都会产生如下错误:

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 python-dev : Depends: python (= 2.7.17-1) but 3.8.1-1 is to be installed
E: Unable to correct problems, you have held broken packages.

我已尝试过sudo dpkg --configure -a,但没有什么作用。

我该如何解决?

编辑:apt-cache policy python输出:

python:
  Installed: 3.8.1-1
  Candidate: 3.8.1-1
  Version table:
 *** 3.8.1-1 100
        100 /var/lib/dpkg/status
     2.7.17-1 500
        500 http://si.archive.ubuntu.com/ubuntu eoan/universe amd64 Packages

答案1

Python 3.8.1 以 python 名称安装,因此我所做的就是运行它sudo dpkg -r python并解决了它。

答案2

尝试运行

ls -lh /usr/bin/python

查看你的默认 Python 版本是否为 2.7。如果不是,请查看是否安装了 Python 2.7 可执行文件

ls /usr/bin/python*

使你的 /usr/bin/python 链接指向正确的 python 版本

rm /usr/bin/python
ln -s /usr/bin/python2.7 python

最后,确保在 /usr/bin/ 中有一个指向 python2.7 配置文件的链接。例如,我有指向 python2.7-config 的 /usr/bin/python2-config

答案3

当您构建包时,看起来您将其命名为“python”而不是“python3.8”。

这是不明智的。现在系统要求“python”的版本是 3.8,而不是 2.7。

如何修复如果你有很多不想重新安装的 Python2 软件包

  • 预留充足的时间来做这件事。不要着急。
  • 仔细阅读输出。如果在任何步骤遇到错误,请立即停止。不要继续。
  • 这将在我的系统上运行。我们不知道您对您的系统做了哪些更改。

1) 备份所有数据,并准备好可用的 LiveUSB。您将使用非常强效的药物。患者可能会出现意想不到的并发症。

2)确保已构建的 Python 3.8 包的所有痕迹都已被删除。

3)删除该包安装的所有文件python,保留其余的 Python2.7 包。

 sudo dpkg remove python --force-depends
 // 'python' places no files in /etc, so 'remove' is appropriate.

4)python从您的 apt/dpkg 数据库中删除该包的所有痕迹。 警告:如果使用不当,此命令可能会破坏您的系统。

 sudo dpkg remove python --force-depends --force-remove-reinstreq

5)重新安装正确的python包:

 sudo apt install python

相关内容