Befehl zum Kompilieren in Geany

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Nobuddy
User
Beiträge: 1019
Registriert: Montag 30. Januar 2012, 16:38

Hallo zusammen,

mein Betriebssytem ist Kubuntu 20.04, meine Python-Version ist 3.8 und verwende Geany zum Erstellen von Pythoncode.

Eine unter Geany lauffähige py-Datei, habe ich mit Geany kompiliert.
Diese kompilierte pyc_Datei, funktioniert aber über die Konsole nicht.
Die Fehlermeldung:

Code: Alles auswählen

RuntimeError: Bad magic number in .pyc file
Folgende Komandos, sind unter Geany hinterlegt:
Zum Ausführen:

Code: Alles auswählen

python3 "%f"
Zum Kompilieren :

Code: Alles auswählen

python3 -m py_compile "%f"
Liegt es am Kompilierbefehl in Geany oder liegt das Problem wo anderst?

Grüße Nobuddy
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

PYC Files sind eine Startzeitoptimierung. Kein in Python unnötiges Kompilat im Sinne vom „das ist das ausführbare Ding“. Der andere (leicht umgehbare) Zweck ist obfuskierung wenn man Code an andere liefert. Und dein Problem klingt danach, dass du das PYC mit einem Python einer anderen Version ausführst.

Summa summarum: kümmer dich nicht um PYCs. Die sind ein Implementierungsdetail. Führe py Dateien aus.
Nobuddy
User
Beiträge: 1019
Registriert: Montag 30. Januar 2012, 16:38

Hallo __deets__,
ich nutze immer die PY zum Ausführen.
In diesem Fall, möchte ich aber die PYC zum Ausführen verwenden.
Die sollte ja genau so funktionieren.

Du meinst, dass die PYC mit einem Python einer anderen Version ausgeführt wird.
Das sollte ja normalerweise nicht sein.
Die Einstellungen in Geany zu den Befehlen, haben ja die gleiche Pythonversion.
Wie kann ich das überprüfen, ob da trotzdem eine falsche Version zum Kompilieren vorliegt?

Grüße Nobuddy
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du pruefst, welches Python du verwendest, indem du python --version benutzt.
Nobuddy
User
Beiträge: 1019
Registriert: Montag 30. Januar 2012, 16:38

Die PYC funktioniert und lässt sich ausführen!
Hatte wohl die falsche PYC verwendet, es gab da zwei namensidentische ('*.cpython-38.pyc' und '*.pyc'). '*.cpython-38.pyc' ist die Richtige.

Meine Version, laut Ausgabe:

Code: Alles auswählen

python --version
Python 2.7.18
Das verwirrt mich jetzt doch, da ich ja die Version 3.8 installiert habe.
Wie kann das sein?
Benutzeravatar
__blackjack__
User
Beiträge: 14078
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Nobuddy: Na Du hast Python 2.7 und 3.8 installiert. Vielleicht sogar noch andere. ``python`` ist bei Dir Python 2.7 und ``python3`` ist bei Dir (sehr wahrscheinlich) Python 3.8.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Nobuddy
User
Beiträge: 1019
Registriert: Montag 30. Januar 2012, 16:38

Hallo __blackjack__,
das ist richtig, 2.7, 3 und 3.8 sind installiert.
Da werde ich wohl aufräumen müssen und ältere Versionen deinstallieren müssen.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nein, das wirst du nicht. Denn die hat aller Wahrscheinlichkeit nach dein System installiert, und braucht die ggf. noch fuer Dinge, die sonst kaputt gehen, wenn du da einfach dran rumdoktorst.

Benutz einfach das Python, das du benutzen willst. Und alles ist gut.
Nobuddy
User
Beiträge: 1019
Registriert: Montag 30. Januar 2012, 16:38

Danke, für den Tipp, das werde ich befolgen!
Antworten