.PYO

PYO Datei

Python Optimized Bytecode File (legacy)
Frage stellen
SCHNELLE ANTWORT

Eine .pyo-Datei ist ein veralteter Python-Cache für optimierten Bytecode, der durch Ausführen von Python mit dem Flag -O oder -OO erzeugt wurde. Das Binärformat ist identisch mit einer .pyc-Datei. Python 3.5 hat die Dateiendung .pyo im Jahr 2015 abgeschafft (PEP 488). Wenn Sie heute eine solche Datei sehen, stammt sie von Python 2 oder Python 3.0-3.4. Sie führen sie über die Kommandozeile mit einer passenden Python-Version aus oder dekompilieren sie mit decompyle3 oder uncompyle6 zurück in .py.

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

Auf dieser Seite

19k+ Erweiterungen indexiert
Zuletzt geprüft Jun 27, 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 PYO-Dateiformat?

Eine .pyo-Datei ist eine veraltete optimierte Python-Bytecode-Datei, die vom CPython-Interpreter erstellt wird, wenn er mit dem Flag -O (optimize) oder -OO ausgeführt wird. Die Übergabe von -O entfernt assert-Anweisungen aus dem kompilierten Bytecode; die Übergabe von -OO entfernt zusätzlich alle Docstrings, was die Dateigröße geringfügig reduziert.

Intern sind .pyo-Dateien vom Format her Byte für Byte identisch mit .pyc-Dateien: ein 16-Byte-Header (4-Byte versionsspezifische Magic Number, 4-Byte Flags-Feld, 4-Byte Zeitstempel oder Quell-Hash, 4-Byte Quellgröße), gefolgt von einem gemarshallten CPython-Code-Objekt. Die Optimierungsstufe spiegelt sich nur im kompilierten Inhalt wider - niemals im Datei-Header.

Die Dateiendung .pyo wurde in Python 3.5 durch PEP 488 (September 2015) als veraltet markiert und wird von keiner aktuellen Python-Version mehr generiert. Ab Python 3.5 wird optimierter Bytecode innerhalb von __pycache__ mit Namen wie module.cpython-311.opt-1.pyc (für -O) oder .opt-2.pyc (für -OO) gespeichert. Wenn Sie heute auf eine .pyo-Datei stoßen, stammt diese aus Python 2 oder Python 3.0-3.4 Code.

.pyo-Dateien sind nicht zwischen CPython-Versionen portierbar - die Magic Number ändert sich mit jedem Release. Werkzeuge wie uncompyle6 (Python 2-3.8) und decompyle3 (Python 3.7-3.11) können .pyo-Dateien in annähernden .py-Quellcode dekompilieren, wobei die Genauigkeit je nach Python-Version und Code-Komplexität variiert.

Sicherheit

RISIKO: MEDIUM

Eine .pyo-Datei wird als Python-Bytecode mit allen Funktionen eines Python-Skripts ausgeführt - Dateisystemzugriff, Netzwerk, Ausführung von Subprozessen. Führen Sie niemals eine .pyo-Datei aus einer nicht vertrauenswürdigen Quelle aus. Antivirensoftware scannt .pyo-Inhalte oft nicht. Bösartige Python-Apps werden manchmal nur als Bytecode (.pyc/.pyo) verteilt, um Reverse Engineering zu erschweren, obwohl Dekompiler den Quellcode weitgehend wiederherstellen können.

Formatdetails

kurz gefasst
VOLLSTÄNDIGER NAMEPython Optimized Bytecode File (legacy)alias Python compiled optimized file, PYO file
ENTWICKLERPython Software Foundation (CPython)seit Early CPython (1990s); same as .pyc but with optimizations (assert removal with -O; docstring removal with -OO)
MIME TYPEapplication/x-python-code
TYPBinärer CPython-Bytecode (gleiches Format wie .pyc; generiert mit Flag -O oder -OO)
STANDARDOffen · lizenzfrei

Programme zum Öffnen von PYO-Dateien

Windows4 apps
Python (run the file) Open Source Führen Sie «python file.pyo» über die Eingabeaufforderung aus (nur Python 2 / 3.0-3.4). Benennen Sie die Datei unter Python 3.5+ zuerst in .pyc um oder verwenden Sie die passende Python-Version.
decompyle3 (decompile to .py) Open Source «pip install decompyle3» und dann «decompyle3 file.pyo > file.py». Funktioniert mit Python 3.7-3.8 Bytecode.
uncompyle6 (decompile Python 2-3.8) Open Source «pip install uncompyle6» und dann «uncompyle6 file.pyo > file.py». Unterstützt Python 2.4-3.8.
VS Code (view bytecode with extension) Open Source Benennen Sie .pyo in .pyc um und verwenden Sie dann die Erweiterung «Python Disassembler» oder «Bytecode Viewer», um Opcodes zu inspizieren.
macOS1 app
Python Open Source Führen Sie «python file.pyo» mit der passenden Python-Version aus. Die meisten Linux-Distributionen enthalten Python.
Linux1 app
Python Open Source Führen Sie «python file.pyo» mit der passenden Python-Version aus. Die meisten Linux-Distributionen enthalten Python.
Web1 app
Decompiler.com (online decompile) Kostenlos Laden Sie die .pyo-Datei hoch; die Seite dekompiliert Python-Bytecode (einschließlich .pyo) im Browser zurück in .py.

Technische Details

technische Spezifikation
Format-BeziehungByte für Byte identisches Dateiformat wie `.pyc`; unterscheidet sich nur durch die Dateiendung und den Optimierungsinhalt
Header-Struktur16-Byte-Header: 4-Byte Versions-Magic + 4-Byte Flags + 4-Byte Quell-mtime oder Hash + 4-Byte Quellgröße
Body-FormatGemarshalltes CPython-Code-Objekt (Bytecode-Anweisungen, Konstanten-Pool, Namen, Variablennamen, verschachtelte Code-Objekte)
Byte-ReihenfolgeLittle-endian (CPython marshal Serialisierungsformat)
Optimierungsstufe -OEntfernt `assert`-Anweisungen aus dem kompilierten Bytecode
Optimierungsstufe -OOEntfernt `assert`-Anweisungen und alle Docstrings aus dem kompilierten Bytecode
VeraltungDateiendung `.pyo` in Python 3.5 abgeschafft (PEP 488, September 2015); wird von keinem aktuellen Python-Release mehr generiert
Modernes Äquivalent`module.cpython-3X.opt-1.pyc` (Stufe 1) oder `.opt-2.pyc` (Stufe 2), gespeichert in `__pycache__`
Versions-PortabilitätNicht portierbar zwischen CPython-Versionen; die Magic Number in den Bytes 0-3 ändert sich mit jedem Hauptrelease von CPython
IntegritätsprüfungPython 3.7+ (PEP 552): optionaler SipHash der Quelle in den Header-Flags gespeichert; Python 2 / frühes 3: nur mtime-Vergleich
Dekompilierungswerkzeuge`uncompyle6` (Python 2-3.8), `decompyle3` (Python 3.7-3.11)
Legacy-UmfangNur von Python 2 oder Python 3.0-3.4 produziert; kommt in Projekten für Python 3.5 oder neuer nicht vor
VeröffentlichtEarly CPython (1990s); same as .pyc but with optimizations (assert removal with -O; docstring removal with -OO)
Neueste VersionDEPRECATED in Python 3.5 (PEP 488, September 2015) - .pyo extension no longer generated; replaced by .cpython-3X.opt-1.pyc / .opt-2.pyc naming
Offener StandardJa · lizenzgebührenfrei
Spezifikationpeps.python.org

PYO-Konvertierungen

Community Q&A

von Nutzern gefragt
Schnelle Frage stellen
Holen Sie sich Hilfe von Menschen, die mit PYO-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 PYO-Dateien.

Häufig gestellte Fragen

Was ist eine .pyo-Datei?
Eine veraltete optimierte Python-Bytecode-Datei - die kompilierte Form eines .py-Skripts, das mit dem Python-Optimierungsflag -O oder -OO erstellt wurde. Identisches Binärformat wie .pyc; generiert von Python 2 und Python 3.0-3.4. Python 3.5+ erstellt keine .pyo-Dateien mehr.
Wie öffne ich eine .pyo-Datei?
Sie öffnen sie nicht direkt - Python führt sie automatisch aus. Um den Inhalt zu lesen, verwenden Sie decompyle3 oder uncompyle6, um sie in .py-Quellcode zurückzuverwandeln, oder benennen Sie sie in .pyc um und nutzen Sie einen Bytecode-Disassembler.
Kann ich .pyo-Dateien löschen?
Ja - .pyo-Dateien sind Bytecode-Caches. Python erstellt sie bei Bedarf neu. Das Löschen beeinträchtigt keine funktionierende Python-Installation oder App (vorausgesetzt, die .py-Quelldateien sind vorhanden).
Was ist der Unterschied zwischen .pyo und .pyc?
.pyo wurde mit -O (Asserts entfernt) oder -OO (Docstrings ebenfalls entfernt) kompiliert; .pyc wurde ohne Optimierung kompiliert. Das Binärformat ist identisch. Python 3.5+ hat sie zu .opt-1.pyc / .opt-2.pyc zusammengeführt.
Warum erstellt Python 3.5+ keine .pyo-Dateien mehr?
PEP 488 (2015) hat .pyo abgeschafft, da zwei Dateiendungen für dasselbe Binärformat verwirrend waren. Die Optimierungsstufe wird nun im Suffix des .pyc-Dateinamens kodiert (.opt-1.pyc, .opt-2.pyc).
Wie dekompiliere ich eine .pyo, um den Python-Quellcode zu erhalten?
Verwenden Sie decompyle3 (Python 3.7-3.8) oder uncompyle6 (Python 2-3.8): «pip install decompyle3 && decompyle3 file.pyo». Oder nutzen Sie decompiler.com als webbasierte Option. Die Ergebnisse können unvollständig sein, insbesondere bei mit -OO kompilierten Dateien, in denen Docstrings fehlen.

Quellen

1PEP 488 - Elimination of PYO filespeps.python.org
2Python Docs - compileall moduledocs.python.org

Weiter entdecken

in der Datenbank

Top-Erweiterungen dieser Woche

1.AQQAQQ Instant Messenger File
2.BINCD/DVD Disc Image (BIN/CUE)
3.MDMarkdown Document
4.RPMSGRestricted Permission Message
5.CRDOWNLOADChrome Partial Download File
6.PARTPartial Download File
7.NOMEDIAAndroid No-Media Marker File
8.EXEWindows Executable (Portable Executable)
9.SWFSmall Web Format (Shockwave Flash)
10.DBSQLite Database File

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