Python unter Linux updaten?
Hi,
vorweg ich bin hauptsächlich Windows-User, hab mir auf meiner TV Box aber Lubuntu installiert. Meine Linuxkenntnisse sind so lala, aber da ich es hauptsächlich für Filme und Retrogaming nutze und sonst nicht viel damit arbeite, geht's.
Nun zu meinem Problem: Leider nutzt Lubuntu 22.04 python3.10.4, mit dem mir Kodi immer abstürzt. Der Bug ist wohl in python3.10.5 behoben, aber ich bekomms nicht geupdated. Hab mich schonmal vor 3 Monaten damit beschäftigt und dann aus Frust wieder 20.04 installiert. Jetzt, wo mit Lubuntu 22.04.1 der erste Patch erschienen ist, hatte ich gehofft, dass sie python auch aktualisiert haben, aber Pustekuchen. Hab es jetzt nochmal mit einem YouTube Tutorial versucht, python3.10.5 selbst kompiliert und bin etwas irritiert. Wenn ich nach dem ganzen Prozess python3 --version ins Terminal eingebe, heißt es Python 3.10.4 (also nichts verändert), wenn ich aber python3.10 --version eingebe, heißt es Python 3.10.5.
Was stimmt nun? Was wird verwendet? Bisher läuft alles noch über den USB-Stick. Möcht ungern jetzt Lubuntu 22.04.1 installieren und hinterher feststellen, dass ich doch wieder zurück muss, weil es weiterhin 3.10.4 nutzt und ich es nicht gebacken bekomm
Wie hast du Kodi installiert? Aus den Paket Repositories von ubuntu?
ja, über sudo apt-get-repository ppa:team-xbmc/ppa. im kodi forum hatten viele über dieses problem berichtet und mir wurde versichert, dass es an python3.10.4 liegt
Du hast aber Lubuntu schon über Discover aktualisiert, oder? 22.04.1 ist ja nur für die ISO wichtig. Die Systeme bekommen die Updates ja so mit.
ja, ich update regelmäßig über discover, aber ein python upgrade war nie dabei. ich habs dann gelassen und gehofft, dass sie es in 22.04.1 updaten, aber leider ist dem nicht so
5 Antworten
In den Repositories von Ubuntu 22.04 ist Python 3.10.4 und kein anderes. Auch nicht in updates oder backports. 😖
Wenn du Kodi aus der Repositories installiert hast, würde ich bei Ubuntu im Launchpad einen Bugreport mit Lösungsvorschlag einreichen. Dann könnte es sein, dass das gefixed wird.
Ansonsten kannst du Python 3.10.6 aus den Quellen kompilieren (3.10.5 geht sicher auch, aber auf der Python Webseite findet sich direkt nur 3.10.6). Das ist hier auf deutsch beschrieben :
https://wiki.ubuntuusers.de/Python/manuelle_Installation/
Hinterher musst du den Pfad zum Executable angeben, der zu 3.10.5 gehört, wenn du es entsprechend aufrufen willst.
Schon auf die Idee gekommen, das PPA einfach wegzulassen? Kodi gibt es in den normalen Quellen ja auch. Oder brauchst du ganz speziell die neueste Version?
Ich hab dann damals, als das so nicht funktioniert hatte, die Flatpak Variante ausprobiert, auch wenn mir davon abgeraten wurde. Tatsächlich konnte ich mit dem Flatpak aber keine externen Programme von Kodi aus starten, eine der wenigen Aufgaben, die für mich essentiell sind, so dass sich das Thema für mich dann wieder erledigt hatte
Oder welche Quelle meintest du jetzt?
Ich Rede nicht von Flatpak, sondern von den repos über apt. Kodi ist dort vorhanden! Funktionierte das etwa auch nicht?
Du operierst hier gerade an offenen Herzen, wenn du so eine andere Python Version installierst...
Dem Flatpak hat vmtl die Berechtigung gefehlt, auf externe Programme zugreifen zu dürfen.
Da müsst ich dann erstmal recherchieren, was das für repos sind, von denen du sprichst und wie alt die sind. Aber apt scheint ja nun kaputt zu sein, also komm ich um eine neuinstallation sowieso nicht drum herum. was nicht schlimm wäre, weil ja eh noch nichts drauf ist... allerdings kann ich mir nicht vorstellen, dass eine ältere kodi version das problem beheben soll, wenn das problem in der python version liegt
Da müsst ich dann erstmal recherchieren, was das für repos sind, von denen du sprichst und wie alt die sind.
Das sind die normalen Repositories von Ubuntu, die man normalerweise für alles benutzt, wenn es nicht explizit Gründe dagegen gibt. Kodi findet sich dort in Version 19.4, wenn ich das richtig sehe:
https://packages.ubuntu.com/jammy/kodi
Und diese Version wird gegen Python 3.10.4 gebaut, weil das ja auch in den Repositories ist. Ich glaube nicht, dass Ubuntu eine Paketversion mit rein nimmt, die nicht funktioniert - vor allem nicht in eine LTS-Version!
Ich glaube, du solltest dich etwas mehr mit Paketquellen und wie das unter Linux arbeitet beschäftigen. Das ist nämlich anders als unter Windows, wo man sich aus irgendwelchen komischen (meist nicht vertrauensvollen) Quellen Installer runterlädt. Sondern man nutzt die Repositories der Distribution, wenn nichts grob dagegen spricht.
Das System ist nicht unbedingt kaputt. Wahrscheinlich muss du die Symlinks nur wieder zurückbiegen auf 3.10.4. Was ich machen würde.
- Python 3.10.5 runterwerfen - je nach Methode, wie du es installiert hast.
- update-alternatives ausführen, wie von anderen beschrieben.
- Wieder apt benutzen.
Und in Zukunft am besten die Finger lassen von YouTube-Videos. Da habe ich absolut schlechte Erfahrungen mit gemacht, weil die meisten, die solche Filme erstellen, nicht den Hauch einer Ahnung haben.
Ich habe Kodi nicht aus irgendeiner x-beliebigen Quelle installiert, sondern aus der Paketquelle, die mir im Kodi-Forum empfohlen wurde und auch auf der Linuxseite des Kodi Wikis aufgeführt ist. Selbst im Ubuntu Wiki ist für die Kodi Installation diese Paketquelle angegeben. Zumindest, wenn man den Controllersupport möchte, was bei mir der Fall ist. Vielleicht kann man auch für die Kodi Installation die Ubuntu Repo nutzen und nur für den Controllersupport die Kodi Repo, das weiß ich nicht.
Und was das YouTube-Video angeht, entspricht das, wie gesagt, genau der Anleitung, die du mir auch verlinkt hast. Das Problem ist erst durch den Teil mit update-alternatives --install ... entstanden.
Ich werde es die Tage nochmal mit der Ubuntu Repo probieren und wenn das nicht funktioniert, muss ich in 1-2 Monaten eben 22.10 installieren. Auch, wenn mir die LTS Version eigentlich lieber gewesen wäre.
Gibt es die Variante update-alternatives --remove? Das könnte das Problem schnell beheben.
Mit der Kontroller-Unterstützung hast du ja einen guten Grund dafür. Dann nehme ich meine Kritik in Teilen zurück.
Empfehlung bleibt aber, immer zuerst die in Repositories verfügbare Version zu nutzen. Wenn die nicht das tut, was man will, dann würde ich weiter schauen.
Hab es heute nochmal mit der Ubuntu Repo probiert, aber der Fehler bleibt bestehen. An einem bestimmten Punkt crasht Kodi. Werde jetzt auf 22.10 warten
Es gibt Kodi auch als Flatpak. Da dürfte Python mit drinnen sein. Vielleicht funktioniert ja die?
ja, Flatpak funktionierte, aber da hatte ich das Problem, dass ich keine externen Programme aus Kodi starten kann. Habs gerade nochmal mit den Berechtigungen versucht. Die Programme, auf die ich mit Kodi zugreifen möchte, liegen auf dem Desktop. Ist der Befehl so richtig?
sudo flatpak override --filesystem=/home/ich/Desktop:create tv.kodi.Kodi
Wusste nicht, wie das Programm heißt, deshalb hab ich den Downloadnamen benutzt. Hat nicht gemeckert, aber vielleicht ist es trotzdem falsch? Funktioniert jedenfalls noch nicht
Mache das lieber mit dem grafischen Werkzeug Flatseal. Das ist genau dafür gemacht und ist weniger fehleranfällig .
Befehl liest such nicht richtig.
Danke für den Tipp, also der Zugriff auf den home Ordner hat schon mal funktioniert, weil er beim nächsten Start plötzlich die Hintergrundbilder, die im home Ordner liegen, geladen hat. Davor war der Hintergrund einfach nur schwarz. Aber das Programm startet er trotzdem nicht. Bin jetzt auch etwas ratlos
Ein Appimage von pcsx2. Muss aber am Kodi Flatpak liegen, denn mit der Kodi Paketversion unter Ubuntu 20.04 funktionierts. Die Konfigurationsdateien und Pfade sind auch die gleichen.
Ich bekomme Repos mit sudo add-apt nicht mehr hinzugefügt. Egal, ob kodi, retroarch oder dolphin. Ich bekomme jedesmal "error: retrieving gpg key timed out". Hat unter 22.04 nicht funktioniert und auch jetzt unter einem frisch installierten 20.04 nicht. Im Internet stand, man kann das Problem mit einem VPN lösen. Hab ProtonVPN installiert. Beim Verbinden bricht er ab. Ich bin hier kurz vorm Druchdrehen. Gibt es noch andere Möglichkeiten PPAs hinzuzufügen? Irgendwie manuell herunterladen?
Sowas mit einem VPN zu lösen wäre mir neu. 🤔
Ich empfehle dir, das im Ubuntu Forum zu fragen. Liest sich nach einem sehr speziellen Problem.
Internetverbindung hast du aber, oder? Updates klappen auch?
Ich habe sehr schlechte Erfahrungen mit PPAs gemacht und nutze bewusst schon seit Jahren kein Ubuntu mehr.
Prinzipiell kann man die Pakete manuell herunterladen und über dpkg installieren. Davon rate ich aber ab. Dann umgeht man die Paketverwaltung und muss sich selbst um Updates kümmern.
Vielleicht hilft noch das:
https://wiki.ubuntuusers.de/Paketquellen_freischalten/PPA/#Manuell
Ansonsten kann Ubuntu vielleicht einfach nicht das, was du von ihm willst... 🤷♂️
Theoretisch hab ich Internet. Nach der Installation hat er einen Batzen Updates installiert und Firefox geht auch. Discover hingegen sagt, es gäbe keine Internetverbindung...
Dann ist dein DNS falsch eingestellt. Firefox benutzt ein eigenen Dienst.
Versuche mal im Terminal
ping 8.8.8.8
ping www.google.de
Soll da irgendwas als Ergebnis rauskommen? Also bei ping 8.8.8.8 hab ich nach 500 Zeilen abgebrochen. Die durchschnittliche Zeit lag zwischen 4 und 10 ms. Bei dem zweiten Befehl kam PING www.google.de(fra24s04-in-x03.1e100.net (2a00...... und am Ende 56 data bytes. Die Ausgabe scheint noch nicht beendet, weil ich nichts machen kann, aber ich wart auch schon seit ein paar Minuten. Mehr tut sich da nicht
Achso. Sorry. Einfach Strg+C drücken . Hätte ich dazu schreiben sollen.
Aber dann hast du eigentlich Internet. DNS scheint korrekt zu sein.
Kannst du mal die Ausgabe folgenden Befehls ausgeben? Das schreibt alle bei dir eingerichteten Quellen raus.
cat /etc/apt/sources.d/*
Da sagt er mir, dass es keine solche Datei oder solch ein Verzeichnis gibt... Hab übrigens vor ner Stunde 21.10 installiert, um zu sehen, ob ich hier PPAs hinzufügen kann, aber ist das gleiche Problem wie unter 20.04 und 22.04
Das findet er auch nicht :D zum DNS Blocker: Falls ja, weiß ich nichts davon ^^ aber vor ein paar Wochen ging ja auch noch alles. Ich hab nichts am Router oder an der TV Box geändert, mit Ausnahme der inzwischen etlichen Lubuntu Neuinstallationen
da gibt er mir gar nichts aus, sondern springt sofort wieder in die eingabe. ich vermute, das heißt, der ordner ist leer?
Ja, das ist gut möglich. Was sagt denn die sources.list in /etc/apt/ über ihren Inhalt?
https://pastebin.com/410nCCNn also im Explorer ist der Ordner auch leer
21.10 bekommt übrigens keine Updates mehr seit Ende Juli. Gut möglich, dass die Repositories deaktiviert sind.
Was macht denn?
ping de.archive.ubuntu.com
Okay. Dann weiß ich gerade nicht weiter hier aus der Ferne.
Ich empfehle das Ubuntu bzw Ubuntuusers Forum. Da sitzt das Fachpersonal 😅
Ich hab eben mal ein Foto von Discover gemacht, weil beim Öffnen immer eine Meldung unten links kommt, die aber so schnell wieder verschwindet. Da steht etwas von Das Depot ... enthält keine Release-Datei. Wobei ich mir nicht sicher bin, ob das früher auch schon kam
vor kurzem gab es ein update unter lubuntu 22.04, das u.a. python von 10.4 auf 10.6 gebracht hat. jetzt läuft alles wieder ohne abstürze :) und das problem, dass ich im terminal keine repos holen konnte, hat sich auch gelöst. hab den timeout fehler nochmal gegoogelt. ip v6 deaktivieren hat das problem behoben. nun, nachdem alles wieder eingerichtet ist, was ich brauche, wird die nächsten 2 jahre nichts mehr an der box verändert :p
wird die nächsten 2 jahre nichts mehr an der box verändert
Aber bitte Sicherheitsupdates einspielen!
Schreib mal folgende Kommandos rein:
1) which python3
2) which python3.10
und vermutlich wirst Du sehen, dass Du nun 2 unterschiedliche python executables auf Deinem System hast ("which" ist ein Kommando, dass Dir unter Linux/UNIX den vollständigen Pfad zu einen Programm anzeigt, so wie es die benutze Shell findest. Die Reihenfolge der Pfade in der PATH Umgebungsvariablen entscheidet dabei, welches executable gefunden wird, falls für ein Programm mehrere Dateien desselben Namens existieren)
auf "which python3" antwortet er mir "/usr/bin/python3". auf "which python3.10" antwortet er mir "/usr/local/bin/python3.10"
Also ist es so, dass Du nun 2 Versionen hast und das erklärt dann auch warum Du mit "--version" zwei unterschiedliche Ergebnisse hast
Die Befehle sind essentiell nur Symbolische Links in /usr/bin
Heißt, /usr/bin/python3.10 scheint auf was anderes zu zeigen als /usr/bin/python3
Kannst du testen mit ls -l /usr/bin/python3 bzw. ls -l /usr/bin/python3.10
Davon abgesehen klingt das, was du da machst alles ziemlich kompliziert. Wenn Ubuntu wirklich (auch nach Updates) keine neue Version hat, installiere dir doch einfach Anaconda.
Ubuntu läuft ja bei ihm... Lubuntu ist hier das Problem, das ist nen abgespecktes Ubuntu für schwache Hardware.
Die haben eigene... Daher auch die andere Version im Vergleich zu Ubuntu, deswegen hat der Fragesteller ja bei Ubuntu das Problem nicht, sondern nur bei Lubuntu...
Nein. Die haben die selben Repositories. Auch bei Ubuntu findet sich nur 3.10.4 und nix anderes laut https://packages.ubuntu.com/
Schon generell Updates gemacht?
sudo apt update -y && sudo apt upgrade -y
Wichtig ist, dass du dann nen Symlink anlegst
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 2
Dazu musst halt ggf. den Pfad von "/usr/bin/python3.10" anpassen auf die kompilierte Version
Ob er bereits angelegt ist, kannst auch vorab bzw. bei Bedarf danach prüfen:
sudo update-alternatives --config python
Wenn die kompilierte Version vorhanden ist, dann einfach 2 eingeben (also halt von Output die richtige Version) und dann Enter, sonst Strg+C
Dann sollte die andere Version ausgewählt sein für den Symlink "python"
die generellen Updates haben nichts gebracht. hab jetzt nach deiner anleitung den symlink für python eingerichtet. muss ich dasselbe noch für python3 machen? da sagt er mir nämlich nach wie vor 3.10.4
Jap, musst auch noch dafür machen. Kannst ja vorab gucken, ob es bei "python" schon die richtige Version nutzt.
python --version
Ja, hatte ich gemacht, das hat funktioniert :) hab dasselbe nun für python3 gemacht und er zeigt mir jetzt überall version 3.10.5 an. Leider hat mir das nun apt kaputt gemacht :( ein ModuleNotFoundError, wie hier beschrieben: https://unix.stackexchange.com/questions/410579/change-the-python3-default-version-in-ubuntu#comment964725_410851 hab nun auch den Symlink erstellt, wie er in demselben Kommentar beschrieben hat. Hat aber leider nichts gebracht. Vielleicht weil es dort um Ubuntu 16.04 geht und sich seitdem ein bisschen was verändert hat
Hi,
probier es mal mit dem Befehl hier:
sudo update-alternatives --config python3
da hat er mir zuerst error: no alternatives for python zurückgemeldet. hab nun mit --install 3.10.5 als 2 installiert
Danke, die Anleitung in dem Link deckt sich mit dem Tutorial auf Youtube, das ich befolgt hab. Dann hab ich da schonmal alles richtig gemacht :)
Danach hab ich mit sudo update-alternatives --install auf die komplierte version gezeigt. Ich denke, das meinst du mit dem Pfad zum Executable angeben? Das hat auch alles funktioniert, sowohl python --version, python3 --version als auch python3.10 --version zeigen mir nun alle python3.10.5 an.
Leider hat mir das nun irgendwie apt kaputt gemacht :/ Hab nun einen ModuleNotFoundError wie in diesem Kommentar hier vorausgesagt: https://unix.stackexchange.com/questions/410579/change-the-python3-default-version-in-ubuntu#comment964725_410851 Das Erstellen des Symlinks danach hat zwar auch funktioniert (zumindest hat das Terminal nichts anderes gesagt), aber bewirkt nichts, der Fehler taucht immer noch auf, wenn ich versuche die Kodi ppa zu installieren