.PYO

PYO-bestand

Python Optimized Bytecode File (legacy)
Stel een vraag
SNEL ANTWOORD

Een .pyo-bestand is een verouderde Python-geoptimaliseerde bytecode-cache die wordt gegenereerd door Python uit te voeren met de -O of -OO vlag. Het binaire formaat is identiek aan een .pyc-bestand. Python 3.5 heeft de .pyo-extensie in 2015 geëlimineerd (PEP 488), dus als u er tegenwoordig een ziet, is deze afkomstig van Python 2 of Python 3.0-3.4. U voert het uit vanaf de opdrachtregel met een bijbehorende Python-versie, of decompileert het terug naar .py met decompyle3 of uncompyle6.

Ontwikkelaar: Python Software Foundation (CPython) Categorie: Ontwikkelaarsbestanden Open standaard MIME: application/x-python-code
OPENT OP Windows macOS Linux Web
Gerelateerd: .DO · .MD · .HEX · .XSD

Op deze pagina

19k+ extensies geïndexeerd
Laatst beoordeeld op Jun 27, 2026

Niet zeker wat uw bestand is?

Sleep een bestand naar onze identificatietool - we lezen alleen de eerste bytes om het formaat te benoemen.

Identificeer een bestand

Wat is het PYO-bestandsformaat?

Een .pyo-bestand is een verouderd Python-geoptimaliseerd bytecode-bestand dat wordt geproduceerd door de CPython-interpreter wanneer deze wordt uitgevoerd met de -O (optimaliseren) of -OO vlag. Het doorgeven van -O verwijdert assert-statements uit de gecompileerde bytecode; het doorgeven van -OO verwijdert daarnaast alle docstrings, waardoor de bestandsgrootte iets afneemt.

Intern zijn .pyo-bestanden byte-voor-byte identiek qua formaat aan .pyc-bestanden: een 16-byte header (4-byte versiespecifiek magic number, 4-byte vlaggenveld, 4-byte tijdstempel of bron-hash, 4-byte brongrootte) gevolgd door een gemarshald CPython-codeobject. Het optimalisatieniveau wordt alleen weerspiegeld in de gecompileerde inhoud - nooit in de bestandsheader.

De .pyo-extensie is verouderd sinds Python 3.5 door PEP 488 (september 2015) en wordt niet langer gegenereerd door huidige Python-releases. Vanaf Python 3.5 en hoger wordt geoptimaliseerde bytecode opgeslagen in __pycache__ met namen als module.cpython-311.opt-1.pyc (voor -O) of .opt-2.pyc (voor -OO). Als u vandaag de dag een .pyo-bestand tegenkomt, is dit afkomstig van Python 2 of Python 3.0-3.4 code.

.pyo-bestanden zijn niet overdraagbaar tussen CPython-versies - het magic number verandert bij elke release. Tools zoals uncompyle6 (Python 2-3.8) en decompyle3 (Python 3.7-3.11) kunnen .pyo-bestanden decompileren naar een benadering van de .py-broncode, hoewel de nauwkeurigheid varieert per Python-versie en codecomplexiteit.

Beveiliging & veiligheid

RISICO: MEDIUM

Een .pyo-bestand wordt uitgevoerd als Python-bytecode met alle mogelijkheden van een Python-script - bestandssysteemtoegang, netwerk, uitvoering van subprocessen. Voer nooit een .pyo uit van een niet-vertrouwde bron. Antivirussoftware scant vaak de inhoud van .pyo niet. Kwaadaardige Python-apps worden soms gedistribueerd als alleen-bytecode (.pyc/.pyo) om reverse engineering te bemoeilijken, hoewel decompileren de broncode grotendeels kan herstellen.

Formaatdetails

in een notendop
VOLLEDIGE NAAMPython Optimized Bytecode File (legacy)ook bekend als Python compiled optimized file, PYO file
ONTWIKKELAARPython Software Foundation (CPython)sinds Early CPython (1990s); same as .pyc but with optimizations (assert removal with -O; docstring removal with -OO)
MIME-TYPEapplication/x-python-code
TYPEBinaire CPython-bytecode (hetzelfde formaat als .pyc; gegenereerd met -O of -OO vlag)
STANDAARDOpen · royaltyvrij
GERELATEERD.do.md.hex.xsd

Programma's die PYO-bestanden openen

Windows4 apps
Python (run the file) Open-source Voer „python file.pyo” uit vanaf de opdrachtprompt (alleen Python 2 / 3.0-3.4). Hernoem op Python 3.5+ eerst naar .pyc of gebruik de bijbehorende Python-versie.
decompyle3 (decompile to .py) Open-source pip install decompyle3 en dan „decompyle3 file.pyo > file.py”. Werkt op Python 3.7-3.8 bytecode.
uncompyle6 (decompile Python 2-3.8) Open-source pip install uncompyle6 en dan „uncompyle6 file.pyo > file.py”. Ondersteunt Python 2.4-3.8.
VS Code (view bytecode with extension) Open-source Hernoem .pyo naar .pyc en gebruik vervolgens de extensie „Python Disassembler” of „Bytecode Viewer” om opcodes te inspecteren.
macOS1 app
Python Open-source Voer „python file.pyo” uit met de bijbehorende Python-versie. De meeste Linux-distributies bevatten Python.
Linux1 app
Python Open-source Voer „python file.pyo” uit met de bijbehorende Python-versie. De meeste Linux-distributies bevatten Python.
Web1 app
Decompiler.com (online decompile) Gratis Upload het .pyo-bestand; de site decompileert Python-bytecode (inclusief .pyo) terug naar .py in de browser.

Technische details

diepe specificaties
FormaatrelatieByte-voor-byte identiek bestandsformaat aan `.pyc`; alleen onderscheiden door de bestandsextensie en optimalisatie-inhoud
Header-structuur16-byte header: 4-byte versie magic + 4-byte vlaggen + 4-byte bron mtime of hash + 4-byte brongrootte
Body-formaatGemarshald CPython-codeobject (bytecode-instructies, constantenpool, namen, varnamen, geneste codeobjecten)
Byte-volgordeLittle-endian (CPython marshal-serialisatieformaat)
Optimalisatieniveau -OVerwijdert `assert`-statements uit gecompileerde bytecode
Optimalisatieniveau -OOVerwijdert `assert`-statements en alle docstrings uit gecompileerde bytecode
Afschrijving`.pyo`-extensie geëlimineerd in Python 3.5 (PEP 488, september 2015); wordt niet gegenereerd door huidige Python-releases
Modern equivalent`module.cpython-3X.opt-1.pyc` (niveau 1) of `.opt-2.pyc` (niveau 2) opgeslagen in `__pycache__`
Versie-portabiliteitNiet overdraagbaar tussen CPython-versies; het magic number in bytes 0-3 verandert bij elke grote CPython-release
IntegriteitsvalidatiePython 3.7+ (PEP 552): optionele SipHash van bron opgeslagen in header-vlaggen; Python 2 / vroege 3: alleen mtime-vergelijking
Decompilatie-tools`uncompyle6` (Python 2-3.8), `decompyle3` (Python 3.7-3.11)
Legacy-bereikAlleen geproduceerd door Python 2 of Python 3.0-3.4; komt niet voor in projecten die gericht zijn op Python 3.5 of later
UitgebrachtEarly CPython (1990s); same as .pyc but with optimizations (assert removal with -O; docstring removal with -OO)
Laatste versieDEPRECATED in Python 3.5 (PEP 488, September 2015) - .pyo extension no longer generated; replaced by .cpython-3X.opt-1.pyc / .opt-2.pyc naming
Open standaardJa · royaltyvrij
Specificatiepeps.python.org

PYO conversies

Community V&A

gevraagd door gebruikers
Stel een korte vraag
Krijg hulp van mensen die met PYO-bestanden werken. Wees specifiek - vermeld uw systeem en softwareversie.
Geen account nodig · antwoorden meestal binnen een dag

Nog geen vragen - wees de eerste om iets te vragen over PYO-bestanden.

Veelgestelde vragen

Wat is een .pyo-bestand?
Een verouderd Python-geoptimaliseerd bytecode-bestand - de gecompileerde vorm van een .py-script gemaakt met de -O of -OO optimalisatievlag van Python. Het heeft een identiek binair formaat als .pyc; gegenereerd door Python 2 en Python 3.0-3.4. Python 3.5+ maakt geen .pyo-bestanden meer aan.
Hoe open ik een .pyo-bestand?
U opent het niet rechtstreeks - Python voert het automatisch uit. Om de inhoud te lezen, gebruikt u decompyle3 of uncompyle6 om het terug te decompileren naar .py-broncode, of hernoemt u het naar .pyc en gebruikt u een bytecode-disassembler.
Kan ik .pyo-bestanden verwijderen?
Ja - .pyo-bestanden zijn bytecode-caches. Python maakt ze opnieuw aan indien nodig. Het verwijderen ervan verstoort een werkende Python-installatie of app niet (ervan uitgaande dat de .py-bronbestanden aanwezig zijn).
Wat is het verschil tussen .pyo en .pyc?
.pyo is gecompileerd met -O (asserts verwijderd) of -OO (docstrings ook verwijderd); .pyc is gecompileerd zonder optimalisatie. Het binaire formaat is identiek. Python 3.5+ heeft ze samengevoegd tot .opt-1.pyc / .opt-2.pyc.
Waarom maakt Python 3.5+ geen .pyo-bestanden meer aan?
PEP 488 (2015) heeft .pyo geëlimineerd omdat het hebben van twee extensies voor hetzelfde binaire formaat verwarrend was. Het optimalisatieniveau is nu gecodeerd in het achtervoegsel van de .pyc-bestandsnaam (.opt-1.pyc, .opt-2.pyc).
Hoe decompileer ik een .pyo om de Python-broncode te krijgen?
Gebruik decompyle3 (Python 3.7-3.8) of uncompyle6 (Python 2-3.8): „pip install decompyle3 && decompyle3 file.pyo”. Of upload naar decompiler.com voor een webgebaseerde optie. Resultaten kunnen onvolkomen zijn, vooral voor met -OO gecompileerde bestanden waarbij docstrings ontbreken.

Referenties

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

Blijf ontdekken

door de database

Populaire extensies deze week

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

Gerelateerde extensies

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

Gratis bestandstools

Een bestandsidentificatie en afbeeldingsconverter in de browser - alles draait op uw eigen apparaat.

Open de gereedschapskist

Blader door bestandsextensies A-Z