.PYC

PYC Datei

Compiled Python Bytecode File
Frage stellen
SCHNELLE ANTWORT

Eine .pyc-Datei ist kompilierter Python-Bytecode, den CPython automatisch zwischenspeichert, um den Start zu beschleunigen. Normalerweise müssen Sie sie nicht öffnen oder anfassen. Zum Ausführen verwenden Sie die passende Python-Version. Um den Quellcode aus einer .pyc-Datei wiederherzustellen, verwenden Sie einen Decompiler wie decompyle3 oder pycdc - die Ergebnisse sind nur näherungsweise und können bei neueren Python-Versionen fehlschlagen.

Entwickler: Python Software Foundation (CPython) Kategorie: Developerdateien Offener Standard MIME: application/x-python-code
VERFÜGBAR AUF Windows macOS Linux
Verwandt: .DO · .MD · .HEX · .XSD

Auf dieser Seite

19k+ Erweiterungen indexiert
Zuletzt geprüft Jun 30, 2026

Nicht sicher, was Ihre Datei ist?

Legen Sie eine beliebige Datei in unseren Identifikator - wir lesen nur die ersten Bytes, um das Format zu benennen.

Datei identifizieren

Was ist das PYC-Dateiformat?

.pyc-Dateien werden von der Programmiersprache Python verwendet. Eine .pyc-Datei ist eine ausführbare Datei, die kompilierten Bytecode für ein in Python-Quellcode geschriebenes Programm enthält. Bytecode ist ein Satz von Anweisungen für den Interpreter, um das Programm auszuführen, ohne den ursprünglichen Quellcode bei jedem Start neu zu parsen, was Import- und Startzeit beschleunigt.

.pyc-Dateien werden von ihren zugehörigen .py-Quelldateien begleitet. Python kompiliert eine .py-Datei und speichert das Ergebnis in einer .pyc-Datei, mit der das Programm dann direkt ausgeführt werden kann. Seit Python 3.2 werden diese Cache-Dateien in einem __pycache__-Unterverzeichnis neben dem Quellcode abgelegt, wobei die Interpreter-Version in den Dateinamen eingebettet ist (z. B. script.cpython-312.pyc).

Jede .pyc-Datei beginnt mit einem 16-Byte-Header. Die ersten zwei Bytes sind eine versionsspezifische Magic-Zahl - sie ändert sich mit jeder CPython-Version - gefolgt von 0x0D 0x0A (CR LF) an Bytes 2-3. Die verbleibenden Header-Bytes enthalten entweder einen Quelldatei-Zeitstempel und -Größe (Standard) oder einen Quelldatei-Hash für deterministische, reproduzierbare Builds, ein Schema, das mit PEP 552 in Python 3.7 eingeführt wurde. Nach dem Header enthält die Datei ein marshallisiertes Code-Objekt, das mit Pythons integriertem dis-Modul untersucht werden kann.

.pyc-Bytecode ist an eine bestimmte CPython-Version gebunden - eine unter Python 3.11 kompilierte Datei wird unter Python 3.12 nicht geladen. Das ältere .pyo-Format für optimierten Bytecode wurde in Python 3.5 entfernt; optimierte Builds erzeugen jetzt .opt-1.pyc- oder .opt-2.pyc-Dateien. Zum Dekompilieren einer .pyc-Datei zurück zu lesbarem Quellcode werden Tools wie uncompyle6, decompyle3 und pycdc (Decompyle++) häufig verwendet, wobei die Kompatibilität je nach Python-Version variiert. Unter Windows verwenden kompilierte Erweiterungsmodule das verwandte .pyd-Format.

Sicherheit

RISIKO: MEDIUM

Eine .pyc-Datei ist Bytecode, den der Python-Interpreter AUSFÜHRT, sodass eine böswillige .pyc-Datei beliebigen Code ausführen kann, genau wie ein Skript - führen Sie niemals eine .pyc-Datei aus einer nicht vertrauenswürdigen Quelle aus. Es ist auch eine gängige Technik zum Verstecken von Malware (nur kompilierten Bytecode ausliefern). Umgekehrt bietet das Verteilen des eigenen Codes als .pyc nur schwachen Schutz: Er kann dekompiliert und zumindest mit dem mitgelieferten 'dis'-Modul disassembliert werden, sodass es KEIN echter Weg ist, Quellcode geheim zu halten. Das Löschen von __pycache__- / .pyc-Dateien ist sicher - Python regeneriert sie automatisch aus den .py-Quellen.

Formatdetails

kurz gefasst
VOLLSTÄNDIGER NAMECompiled Python Bytecode File
ENTWICKLERPython Software Foundation (CPython)seit Early CPython (1990s); current header layout (PEP 552 hash-based, deterministic) since Python 3.7, 2018
MIME TYPEapplication/x-python-code
TYPBinärer CPython-Bytecode (marshallisiertes Code-Objekt mit versioniertem Header)
STANDARDOffen · lizenzfrei

Programme zum Öffnen von PYC-Dateien

Windows3 apps
Python (run it) Open Source Mit der PASSENDEN Python-Version ausführen: 'python module.pyc'. Der Interpreter führt Bytecode direkt aus - aber die Version muss mit der übereinstimmen, die ihn kompiliert hat.
decompyle3 / uncompyle6 (decompile) Open Source Quellcode wiederherstellen: 'pip install decompyle3', dann 'decompyle3 file.pyc > file.py'. Funktioniert am besten für Python bis ~3.8; Kommentare/Formatierung gehen verloren.
pycdc (Decompyle++) Open Source Für neueres Python (3.9+), wo uncompyle6 versagt: pycdc erstellen und 'pycdc file.pyc' ausführen. Bestmöglich; Genauigkeit bei den neuesten Versionen ist begrenzt.
macOS2 apps
Python (run it) Open Source Mit der PASSENDEN Python-Version ausführen: 'python module.pyc'. Der Interpreter führt Bytecode direkt aus - aber die Version muss mit der übereinstimmen, die ihn kompiliert hat.
uncompyle6 / decompyle3 (decompile) Open Source Install via pip and decompile to .py; same version caveats as on Windows.
Linux2 apps
Python (run it) Open Source Mit der PASSENDEN Python-Version ausführen: 'python module.pyc'. Der Interpreter führt Bytecode direkt aus - aber die Version muss mit der übereinstimmen, die ihn kompiliert hat.
decompyle3 / pycdc (decompile) Open Source pip install decompyle3 (oder pycdc für 3.9+ erstellen), dann die .pyc-Datei zurück zu .py dekompilieren.

Technische Details

technische Spezifikation
EntwicklerPython Software Foundation (CPython)
MIME-Typapplication/x-python-code
DateistrukturBinär - 16-Byte-versionierter Header, gefolgt von einem marshallisierten Python-Code-Objekt
Magic-ZahlBytes 0-1: versionsspezifischer 2-Byte-Wert (je nach CPython-Version unterschiedlich); Bytes 2-3: immer 0x0D 0x0A (CR LF)
Header-Layout32-Bit-Magic, 32-Bit-Bitfeld-Flags, dann entweder 32-Bit-mtime + 32-Bit-Quelldateigröße (Zeitstempelmodus) oder ein 32-Bit-Quellhash (PEP 552 Hash-Modus)
Cache-VerzeichnisSeit Python 3.2 in __pycache__/ gespeichert; Dateiname kodiert die Interpreter-Version, z. B. script.cpython-312.pyc
VersionskompatibilitätJede CPython-Version schreibt eine eindeutige Magic-Zahl; eine .pyc von Python 3.11 wird unter 3.12 nicht geladen und umgekehrt
PlattformportabilitätPlattformunabhängig innerhalb derselben CPython-Version - dieselbe .pyc läuft unter Windows, macOS und Linux mit einem passenden Interpreter
Optimierte Variantenpython -O und python -OO erzeugen .opt-1.pyc und .opt-2.pyc (entfernen Assertions und Docstrings); die .pyo-Erweiterung wurde in Python 3.5 abgeschafft
Automatische GenerierungssteuerungCPython schreibt .pyc-Dateien automatisch beim Import; unterdrückt durch das -B-Flag oder die Umgebungsvariable PYTHONDONTWRITEBYTECODE=1
Disassemblierung / DekompilierungPythons integriertes dis-Modul disassembliert Bytecode; Drittanbieter-Tools uncompyle6, decompyle3 und pycdc (Decompyle++) versuchen eine Quellcode-Rekonstruktion
Internes SerialisierungsformatCode-Objekte werden mit dem marshal-Modul serialisiert - ein kompaktes Binärformat, das sich von pickle unterscheidet und nicht Teil der stabilen öffentlichen API ist
Hash-basierte BuildsPEP 552 (Python 3.7+) führte Hash-basierte .pyc-Dateien ein: Der Header speichert einen Quelldatei-Hash anstelle von mtime für reproduzierbare Builds
VeröffentlichtEarly CPython (1990s); current header layout (PEP 552 hash-based, deterministic) since Python 3.7, 2018
Offener StandardJa · lizenzgebührenfrei
Spezifikationdocs.python.org

PYC-Konvertierungen

Community Q&A

von Nutzern gefragt
Schnelle Frage stellen
Holen Sie sich Hilfe von Menschen, die mit PYC-Dateien arbeiten. Seien Sie konkret - geben Sie Ihr System und die Softwareversion an.
Kein Konto erforderlich · Antworten meist innerhalb eines Tages

Noch keine Fragen - stellen Sie die erste Frage zu PYC-Dateien.

Häufig gestellte Fragen

Was ist eine .pyc-Datei und kann ich sie löschen?
Es handelt sich um kompilierten Python-Bytecode, den Python zwischenspeichert, um schneller zu starten. Sie können .pyc-Dateien und __pycache__-Ordner bedenkenlos löschen - Python erstellt sie beim nächsten Ausführen automatisch aus dem .py-Quellcode neu.
Wie konvertiere ich eine .pyc-Datei zurück in .py-Quellcode?
Durch Dekompilierung. Verwenden Sie decompyle3 oder uncompyle6 für Python bis 3.8 ('decompyle3 file.pyc > file.py'), oder pycdc für Python 3.9+. Die Ergebnisse sind nur näherungsweise - Kommentare und genaue Formatierung gehen verloren - und können bei den neuesten Python-Versionen fehlschlagen.
Warum lässt sich meine .pyc-Datei nicht ausführen?
Fast immer eine Versionsabweichung: Eine .pyc-Datei ist an die genaue CPython-Version gebunden, die sie erstellt hat (die Magic-Zahl). Führen Sie sie mit derselben Version aus, oder holen Sie sich das Original-.py und lassen Sie Ihr Python es neu kompilieren.
Verbirgt das Ausliefern von .pyc statt .py meinen Quellcode?
Nur schwach. .pyc kann zurück zu lesbarem Python dekompiliert und immer mit dem integrierten 'dis'-Modul disassembliert werden. Es schreckt gelegentliche Neugier ab, bietet aber keinen echten Schutz.
Was befindet sich in einem __pycache__-Ordner?
Zwischengespeicherte .pyc-Dateien mit Namen wie module.cpython-311.pyc - eine pro importiertem Modul, markiert mit der Python-Version. Es handelt sich um einen automatischen Performance-Cache, der sicher entfernt werden kann.
Kann ich eine .pyc-Datei ohne die .py-Datei ausführen?
Ja, wenn Sie die passende Python-Version haben: 'python module.pyc'. Der Interpreter führt Bytecode direkt aus - aber die Version muss mit der übereinstimmen, die ihn kompiliert hat. Die .py-Datei wird nur zum Bearbeiten oder zum Neugenerieren des Caches durch Python benötigt.

Quellen

1Python docs - dis (bytecode disassembler)docs.python.org
2PEP 552 - Deterministic pycspeps.python.org

Weiter entdecken

in der Datenbank

Top-Erweiterungen dieser Woche

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.BINCD/DVD Disc Image (BIN/CUE)
5.RPMSGRestricted Permission Message
6.MDMarkdown Document
7.NOMEDIAAndroid No-Media Marker File
8.PRO6XProPresenter 6 Bundle File
9.EXEWindows Executable (Portable Executable)
10.PRDXSoftMaker Presentations Document

Verwandte Erweiterungen

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

Kostenlose Datei-Tools

Ein Browser-Dateiidentifikator und Bildkonverter - alles läuft auf Ihrem Gerät.

Toolbox öffnen

Dateierweiterungen A-Z durchsuchen