Hi, ich habe mir Python selbst kompiliert und manbuell aufgespielt! Mit alles, sogar pip habe ich zum laufen gebracht... ODer... Nun ja... Fast alles:
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'
Wenn ich mit virtualenv eine virtuelle Umgebung erstelle und dort pip verwenden will! Der Gag ist, dass dies nur bei virtuellen Umgebungen so ist, nicht jedoch außerhalb dieser, wo alles wie gewohnt funktioniert
Stats
Betriebssystem: Linux Debian 11
Python Version: Python 3.12.0a5
Pip Version: pip 23.0.1 from /usr/local/python/lib/python3.12/site-packages/pip (python 3.12)
Axel-WAK hat geschrieben: ↑Montag 6. März 2023, 13:14
Python 3.12 ist natürlich noch alpha und man hat da auch einige Module entfernt , distutils etc...
Sind solche Module zwingend erforderlich? Weshalb sollte man solche Module entfernen? Wenn diese doch benötigt werden?
Der Gag ist, dass man eigentlich keine Python-Version verwendet, die noch nicht final ist.
Und wenn man es tut, sollte man sehr genau wissen was man tut.
Warum brauchst du diese Version?
Gerade bei Versionen, wo sich sehr viel ändert, besteht immer die Gefahr, dass Python für sich gesehen zwar noch funktioniert, aber externe Module/Pakete nun Ärger machen. Das gab es mit dem Sprung auf 3.x und ich befürchte, dass die 3.12 auch noch so einige Probleme mit sich bringen wird. Einige Projekte, die nicht mehr aktiv betreut werden (damit meine ich *nicht* virtualenv), könnten einem durchaus um die Ohren fliegen.
snafu hat geschrieben: ↑Dienstag 7. März 2023, 03:37
Gerade bei Versionen, wo sich sehr viel ändert, besteht immer die Gefahr, dass Python für sich gesehen zwar noch funktioniert, aber externe Module/Pakete nun Ärger machen. Das gab es mit dem Sprung auf 3.x und ich befürchte, dass die 3.12 auch noch so einige Probleme mit sich bringen wird. Einige Projekte, die nicht mehr aktiv betreut werden (damit meine ich *nicht* virtualenv), könnten einem durchaus um die Ohren fliegen.
Frage ist halt, wie beschaffe ich diese Pakete jetzt?
@Justman10000: Du hast bis jetzt die eigentlich wichtige Frage nicht beantwortet, warum du unbedingt eine Alpha-Version benutzen (und dann auch noch selbst kompilieren) möchtest.
narpfel hat geschrieben: ↑Dienstag 7. März 2023, 18:55
@Justman10000: Ich habe das gerade mal ausprobiert und bei mir funktioniert das hier ohne Probleme:
sparrow hat geschrieben: ↑Dienstag 7. März 2023, 21:34
Und du versuchst verzweifelt die nicht veröffentlichte Version zu benutzen, weil?
Ich ein Typ bin, der gerne die Alpha verwendet, wenn er etwas selbst kompiliert... Zudem kapiere ich halt nicht... In dem Gitpod Workspace, wo ich das Script zuvor testete, funktionierte es ja ohne Probleme...
@Justman10000: Tja, dann wirst du wohl auch der Typ sein müssen, der sich in die Anleitung reinliest und Schritt für Schritt rausfindet, wo seine Pythoninstallation kaputt geht. Ich sehe da spontan mindestens zwei Punkte in deinem Script, die möglicherweise und/oder ziemlich sicher früher oder später Probleme verursachen werden.
Mein Geheimtipp wäre an dieser Stelle, vielleicht mal die Fehlermeldung bei Google einzugeben? Und der zweite Geheimtipp ist, mehr Informationen zu liefern. Insbesondere die vollständigen Terminalbefehle zusammen mit ihren vollständigen Ausgaben. Damit muss man nicht unnötig im Nebel stochern, wenn man versuchen will zu helfen.
@Justman10000: Anmerkungen zu den Installationsschritten: „underVersion“ ist eine etwas sehr wörtliche Übersetzung von „Unterversion“. Das wäre in English „subversion“.
Man verschiebt normalerweise keine Quelltexte in ein selbst angelegtes Unterverzeichnis in ``/usr/local/`` um dort dann Sachen zu kompilieren.
Und was man so wirklich gar nicht macht, ist dann das gleiche Unterverzeichnis dort als Ziel für das Installieren des kompilierten Ergebnisses anzugeben. Da können komische Effekte auftreten weil a) Dateien überschrieben werden könnten, und b) könnten Verzeichnisse dort genau so heissen wie die, in die installiert wird, womit dann Teile vom Endprodukt und Quelltext im gleichen Verzeichnis landen.
Es gibt ja Leute die sagen man sollte Quellen und Kompilat nicht im gleichen Verzeichnisbaum haben, aber Du hast da jetzt Quellen, Kompilat, *und* das installierte Programm im gleichen Verzeichnisbaum. Das ist Murks.
Zudem ist das auch kein Verzeichnisbaum in dem das System normalerweise Programme oder Bibliotheken sucht, oder der C-Compiler nach Include-Dateien. Dieses exotische Vorgehen ist ja auch der Grund warum Du bei einigen ``pip``-Aufrufen vorher CFLAGS setzen musst.
Mit den symbolischen Verknüpfungen wird das Python von der Linux-Distribution ersetzt, was leicht zu Problemen führen kann mit Programmen die auch über die Linux-Distribution installiert wurden, und das Systempython erwarten. Dafür gibt es das `altinstall`-Ziel im Makefile.
`get-pip.py` ist nicht mehr der aktuelle Weg. Seit Python 3.4 ist `ensurepip` Bestandteil der Standardbibliothek.
Die ``-r``-Option bei ``rm`` sieht ein bisschen „cargo cult“-Programmierung aus. Die Option macht bei Einzeldateien überhaupt gar keinen Sinn. Du scheinst die einfach *immer* zu verwenden, ohne darüber nachzudenken.
Zum deinstallieren löscht man nicht einfach so Verzeichnisse und Dateien. Da wird im Zweifel ja auch gar nicht alles erwischt das nach ``/usr/bin/`` verknüpft wurde, denn dort war ein ``*`` involviert — beim löschen gibst Du aber nur zwei explizite Dateinamen an. Hier auch wieder: Kein exotisches Installationsziel verwenden und manuell symbolische Verknüpfungen anlegen, sondern ``make uninstall``.
Die drei Todfeinde des Programmieres:
Sonnenlicht, frische Luft und das unerträgliche Gebrüll der Vögel.