我在 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