2010-05-23 8 views
10

Ich möchte wissen, was eine Pyc-Datei (Python Bytecode) ist. Ich möchte alle Details wissen. Ich möchte wissen, wie pyc Dateien mit dem Compiler verbinden. Ist es ein Ersatz für exe? Muss es von Python ausgeführt werden? Ist es so portabel wie die .py-Datei? Wo soll ich das verwenden?Wo verwendet man eine Pyc-Datei

Antwort

15

Um Mike Grahams Antwort zu ergänzen, gibt es einige interessante Kommentare here geben einige Informationen über Pyc-Dateien. Interessanter ich für Sie vermuten, ist die Zeile:

Ein Programm nicht schneller läuft, wenn es von einem ‚.pyc‘ gelesen oder ‚.pyo‘ Datei, als wenn sie von einem‘Py gelesen ' Datei; Das einzige, was bei '.pyc' oder '.pyo' Dateien schneller ist, ist die Geschwindigkeit, mit der sie geladen werden.

Was trifft den Nagel auf den Kopf w.r.t. der Kern einer Pyc-Datei. A ist eine vorinterpretierte py Datei. Der Python-Bytecode ist immer noch der gleiche wie wenn er aus einer py Datei generiert wurde - der Unterschied ist, dass Sie bei der Verwendung einer pyc Datei nicht die Erstellung der pyc Ausgabe machen müssen (was Sie tun wenn Sie eine py Datei ausführen). Lesen Sie, da Sie das Python-Skript nicht in Python-Bytecode konvertieren müssen.

Wenn Sie auf .class Dateien in java gestoßen sind, ist dies ein ähnliches Konzept - der Unterschied ist in Java, dass Sie die Kompilierung mit javac durchführen müssen, bevor der Java-Interpreter die Anwendung ausführt. Andere Art, Dinge zu tun (die Interna werden sehr unterschiedlich sein, da sie verschiedene Sprachen sind), aber dieselbe allgemeine Idee.

9

Python-Bytecode erfordert die Ausführung von Python, kann nicht eigenständig ohne Python ausgeführt werden und ist spezifisch für eine bestimmte x.y Version von Python. Es sollte plattformübergreifend für dieselbe Version verfügbar sein. Es gibt keinen allgemeinen Grund für Sie, es zu benutzen; Python verwendet es, um das Parsen Ihrer .py-Datei bei wiederholten Importen zu optimieren. Dein Leben wird in Ordnung sein und die Existenz von Pyc-Dateien ignorieren.

6

Vom docs:

Als wichtigen Beschleunigung der Anlaufzeit für kurze Programme, die viele Standardmodule verwenden, wenn eine Datei spam.pyc existiert in dem Verzeichnis, in dem Spam genannt Es wird angenommen, dass .py eine bereits "bytekompilierte" Version des Modulspam enthält. Die Änderungszeit der Version von spam.py, die zum Erstellen von spam.pyc verwendet wurde, wird in spam.pyc aufgezeichnet, und die .pyc-Datei wird ignoriert, wenn diese nicht übereinstimmt.

Siehe die Ref für weitere Informationen. Aber einige spezifische Antworten:

Der Inhalt der spam.pyc-Datei ist plattformunabhängig, so dass ein Python-Modul-Verzeichnis von Maschinen unterschiedlicher Architekturen gemeinsam genutzt werden kann.

Es ist nicht eine ausführbare Datei; Es wird intern vom Compiler als Zwischenschritt verwendet.

Im Allgemeinen erstellen Sie keine .pyc-Dateien von Hand: Der Interpreter erstellt sie automatisch.