Seite 1 von 1
Fehlermeldung beim Ausführen von .pyc Datei
Verfasst: Freitag 10. Oktober 2014, 11:12
von Nobuddy
Hallo zusammen,
arbeite schon etwas länger mit Python, habe mich aber bisher nicht mit .pyc beschäftigt.
Ich habe ein Programm geschrieben, das unter Python 3.4 problemlos läuft.
Zum Programmieren, verwende ich Geany.
Heute habe ich das besagte Programm (.py) kompiliert und habe nun eine .pyc des Programmes.
Versuche ich aber diese .pyc Datei zu starten, passiert nichts.
Starte ich diese .pyc Datei aus einem Terminal heraus, erhalte ich folgende Fehlermeldung:
whtb@user:~/Scripte$ python3 gui_work.pyc
RuntimeError: Bad magic number in .pyc file
Ich hoffe, Ihr könnt mich da aufklären, was falsch läuft bzw. was ich falsch mache!
Grüße Nobuddy
Re: Fehlermeldung beim Ausführen von .pyc Datei
Verfasst: Freitag 10. Oktober 2014, 11:30
von BlackJack
@Nobuddy: Die `pyc`-Datei passt nicht zum Interpreter mit dem Du versuchst sie auszuführen. Ich würde mich mit pyc-Dateien gar nicht erst auseinandersetzen. Das ist ein Implementierungsdetail von CPython, das Format kann sich von Version zu Version ändern, die sind nicht dazu gedacht um ”kompilierte Dateien” weiterzugeben. Und falls doch, dann unbedingt mit dem Interpreter zusammen mit dem sie erstellt wurden. Das ist ein Cache-Mechanismus, kein ”offizielles” Datenformat.
Re: Fehlermeldung beim Ausführen von .pyc Datei
Verfasst: Freitag 10. Oktober 2014, 12:09
von Nobuddy
Hallo BlackJack,
Danke für Deine Antwort!
Ich bin davon ausgegangen, daß wenn ich die kompilierte .pyc Datei verwende, das Programm schneller startet und arbeitet.
Grüße Nobuddy
Re: Fehlermeldung beim Ausführen von .pyc Datei
Verfasst: Freitag 10. Oktober 2014, 13:07
von cofi
Jedes Modul wird vor dem Ausfuehren kompiliert, insofern wuerdest du es nicht merken, wenn dem so waere

Re: Fehlermeldung beim Ausführen von .pyc Datei
Verfasst: Freitag 10. Oktober 2014, 13:44
von Nobuddy
@cofi, schon klar ..., aber wenn ich mir überlege:
- bei jedem Ausführen ein Modul zu komilieren
- statt ein schon kompiliertes Modul zu verwenden
Wenn keine Änderungen für ein neues Kompilieren des Moduls vorliegen, wäre es ja logisch das bestehende kompilierte Modul zu verwenden, oder?
Re: Fehlermeldung beim Ausführen von .pyc Datei
Verfasst: Freitag 10. Oktober 2014, 13:49
von BlackJack
@Nobuddy: Ja aber das passiert doch automatisch. Ich weiss jetzt nicht was Du da grossartig an Geschwindigkeit gewinnen willst dadurch dass das *eine* Modul über das gestartet wird eventuell kompiliert wird weil kein pyc vorliegt.
Re: Fehlermeldung beim Ausführen von .pyc Datei
Verfasst: Freitag 10. Oktober 2014, 15:17
von /me
Nobuddy hat geschrieben:Wenn keine Änderungen für ein neues Kompilieren des Moduls vorliegen, wäre es ja logisch das bestehende kompilierte Modul zu verwenden, oder?
Genau das macht Python ja automatisch. Wenn sich nichts geändert hat wird direkt auf die kompilierte Version zurückgegriffen.
Re: Fehlermeldung beim Ausführen von .pyc Datei
Verfasst: Freitag 10. Oktober 2014, 15:38
von Nobuddy
Hallo /me,
ich denke daß ich es jetzt verstanden habe!
Ich starte also wie gewohnt meine .py und Python greift automatisch auf die kompilierte Version zu.
Da habe ich mir unnötig den Kopf zerbrochen .....

Re: Fehlermeldung beim Ausführen von .pyc Datei
Verfasst: Freitag 10. Oktober 2014, 16:14
von /me
Nobuddy hat geschrieben:Ich starte also wie gewohnt meine .py und Python greift automatisch auf die kompilierte Version zu.
Es sei denn, dass das letzte Änderungsdatum der pyc-Datei vor dem letzten Änderungsdatum der py-Datei liegt. Dann kompiliert Python natürlich noch mal.