Answers:
我的问题原来仅是由于/usr/bin/python
错误消息中所建议的符号链接发生了变化。我正在使用update-alternatives
,/usr/bin/python
因此它指向/etc/alternatives/python
。事实证明,do-release-upgrade
使用此符号链接确实很严格,仅选择python2.7并update-alternatives
不够,所以我最终将其强制为其原始状态:
sudo ln -sf /usr/bin/python2.7 /usr/bin/python
这就解决了问题。
如果这对您不起作用,那么我猜您安装了真正损坏的python。我建议
sudo apt-get install --reinstall python
/etc/alternatives/python
链接到/usr/bin/python2.7
?还有其他事情有更高的优先级吗?
/usr/bin/python2.7
是实际的二进制文件,它永远不应该是符号链接,符号链接是/etc/alternatives/python
..您介意再次检查它吗?
/usr/bin/python
是的符号链接/etc/alternatives/python
(当然/usr/bin/python2.7
是二进制文件,但这不是这里的问题)。
/etc/alternatives/python
然后将其链接到您选择的任何对象(不一定是/usr/bin/python2.7
-为什么update-alternatives
在这种情况下您甚至需要?),但要点是,/usr/bin/python
当您使用符号链接时是不允许的do-release-upgrade
。
这是正确的:
sudo update-alternatives --remove-all python
sudo ln -sf /usr/bin/python2.7 /usr/bin/python
update-alternatives --remove-all python
在Ubuntu 18.10中,仍然存在相同的问题。
/ usr / bin / python链接到旧版本。甚至晚于2.7可用,但是此超级智能过程要求(在18.10中!)P 2.7。所以我给了它,它被接受了。
这为我解决了:
1)删除/ usr / bin / python做 sudo rm /usr/bin/python
2)创建一个新链接 sudo ln -sf /usr/bin/python2.7 /usr/bin/python
在18.10中,我不能使用sudo update-alternatives --remove-all python
或sudo apt-get install --reinstall python
。
为我工作。希望它也对您有帮助。
ls -sf
会覆盖目标,因此1)没有意义,而2)正是我的回答告诉您要做的。真是浪费...
sudo rm
仍然毫无意义。
对于Ubuntu 19.04,默认的python版本是3.7。升级到Ubuntu 19.10时遇到了相同的错误,以下内容有所帮助:
sudo apt-get install --reinstall python3
sudo ln -sf /usr/bin/python3.7 /usr/bin/python3
如果您的python软件包有非常严重的问题,剩下的唯一方法是强制删除它,然后重新安装它:
sudo dpkg --remove --force-remove-reinstreq --force-depends python3
sudo apt-get -f install