Ich möchte ein Upgrade von Ubuntu 16.04.5 LTS auf 18.04 durchführen, also lief sudo do-release-upgrade
. Nach dem Herunterladen und Extrahieren bionic.tar.gz
erhalte ich:
Can not upgrade
Your python3 install is corrupted. Please fix the '/usr/bin/python3'
symlink.
Ich habe gesehen, wie man "Python-Installation ist beschädigt" behebt? und so sudo ln -sf /usr/bin/python3.6 /usr/bin/python3
dachte ich , dass es ein ähnliches Problem sein würde. Aber das hat nicht funktioniert (immer noch die gleiche Fehlermeldung).
Ich habe ein paar Python-Versionen:
$ ls /usr/lib | grep python
python2.7
python3
python3.5
python3.6
$ update-alternatives --display python3
python3 - auto mode
link best version is /usr/bin/python3.6
link currently points to /usr/bin/python3.6
link python3 is /usr/bin/python3
/usr/bin/python3.5 - priority 1
/usr/bin/python3.6 - priority 2
Wie behebe ich python3
?
upgrade
python3
do-release-upgrade
mRcSchwering
quelle
quelle
Antworten:
Sie müssen die Standardversion von Python 3 für 16.04 verwenden. Das ist 3,5 , nicht 3,6. Also lauf:
Wenn dies nicht funktioniert, installieren Sie das
python3
Paket erneut.Übrigens
update-alternatives --display python3
sollte dir gebenupdate-alternatives: error: no alternatives for python3
. Verschiedene Versionen von Python sind in Ubuntu keine Alternativen.quelle
Ich bin gerade auf Pop! _OS 18.04 auf dieses Problem gestoßen und habe versucht, auf 18.10 zu aktualisieren, und es stellte sich heraus, dass das Problem im Symlink für
/usr/bin/python
und nicht für lag/usr/bin/python3
. Ich hatte/usr/bin/python3.6
als Alternative fürpython
(nichtpython3
) konfiguriert , und wenn ich dies änderte, konnte ichdo-release-upgrade
wie erwartet laufen .Ich wünschte, die Fehlermeldung würde darauf hinweisen
python
und nichtpython3
.Vorher mit dem Problem:
Ich habe es so behoben:
Siehe auch diesen Kommentar unten, der eine genauere Lösung beschreibt, die auch besser erklärt, was los ist und wie es behoben werden kann.
quelle
update-alternatives --remove-all python
war auf jeden Fall eine unnötige Overkill: Alles , was Sie tun mußten , wurde mitupdate-alternatives --config python
haben ,python
auf die aktuellepython2.*
(zBpython2.7
), dann verwenden Sieupdate-alternatives --config python3
habenpython3
Punkt zu speziellpython3.6
- was die Standard - Python - 3 - Version für 18,04 ist.gnome-terminal
,update-manager
usw. Vielmehr verwendet virtuelle Umgebungen (Dokumentation hier und hier )Ich habe diese Fehlermeldung unter Windows 10 1903 mit WSL Ubuntu beobachtet, als ich ein Upgrade von 16.04 LTS auf 18.04 LTS durchführen wollte .
Nachdem
do-release-upgrade
dies fehlgeschlagen war, wechselte ichpython
zu jeder von angebotenenupdate-alternatives --config python
Option die Alternative und führte den Upgrade-Befehl erneut aus. Das hat nicht geholfen.Dann überprüfte ich die Protokolldatei,
/var/log/dist-upgrade/main.log
die die Zeilen enthieltObwohl in der Fehlermeldung python3 erwähnt wird , handelt es sich um python2 .
Das Upgrade-Skript prüft
/usr/bin/python
, ob eine Verknüpfung/usr/bin/python2
besteht. Siehe QuellcodeDistUpgrade/DistUpgradeController.py
hier: Ubuntu LaunchpadEine Lösung besteht also darin, Python vollständig aus dem alternativen System zu entfernen und den Link manuell hinzuzufügen, wie in der beliebtesten Antwort beschrieben.
Wenn Sie Python nicht vom alternativen System entfernen möchten, ändern Sie den Link nur für die Zeit während des Aktualisierungsvorgangs:
Das hat bei mir funktioniert.
Während des Upgrade-Vorgangs wird die Verbindung automatisch repariert. Wenn das Upgrade abgeschlossen ist, verweist es auf den Python-Eintrag im alternativen Verzeichnis:
Bearbeiten: Für gründliche Informationen kann das Problem auch auftreten, wenn Sie ein Upgrade von 18.04 LTS auf 19.04 durchführen und die Antwort auch für diese Situation gilt.
quelle
Grundsätzlich besteht die Lösung für dieses Problem darin,
/usr/bin/python
auf die richtige Version von Python hinzuweisen, die Ihre Ubuntu-Version erwartet (zum Beispiel war in 16.04 Python2.7 und in 18.04 Python3.6).Wenn auf Ihrem System mehrere Versionen von Python installiert sind, können Sie diese verwenden
update-alternatives
, um sie zu verwalten. Es spielt keine Rolle, ob Ihre Standardalternative für Python die richtige Version ist, die Ihr System erwartet (3.6 in Ubuntu 18.04). Sie funktioniert nicht.Der Grund , warum dies nicht funktioniert , ist , dass bei Verwendung
update-alternatives
,/usr/bin/python3
zeigt auf/etc/alternatives/python3
, und es scheint , das ist nicht genau das gleiche wie macht/usr/bin/python3
Punkt/usr/bin/python3.6
.Aus diesem Grund besteht die Lösung für dieses Problem häufig darin, die Verwaltung Ihrer Python3-Versionen zu beenden
update-alternatives
und/usr/bin/python3
auf die richtige Version von Python3 hinzuweisen, die Ihr System erwartet.quelle
/usr/bin/python
existiert bei einer Neuinstallation vom 18.04 nicht, aber wenn Sie ein Upgrade anstelle einer Neuinstallation durchführen oder daspython
Paket installieren , sollte es Python 2.7 sein, nicht 3.6. Siehe PEP 394 .update-alternatives
. Dies liegt daran, dass das Betriebssystem von einer bestimmten Version abhängig ist, die installiert wird.