.PYO

PYO-fil

Python Optimized Bytecode File (legacy)
Ställ en fråga
SNABBT SVAR

En .pyo-fil är en föråldrad cache för Python-optimerad bytekod som genereras genom att köra Python med flaggan -O eller -OO. Det binära formatet är identiskt med en .pyc-fil. Python 3.5 tog bort filändelsen .pyo år 2015 (PEP 488), så om du ser en idag kommer den från Python 2 eller Python 3.0-3.4. Du kör den från kommandoraden med en matchande Python-version, eller dekompilerar den tillbaka till .py med decompyle3 eller uncompyle6.

Utvecklare: Python Software Foundation (CPython) Kategori: Utvecklarfiler Öppen standard MIME: application/x-python-code
ÖPPNAS PÅ Windows macOS Linux Web
Relaterat: .DO · .MD · .HEX · .XSD

På denna sida

19k+ filtillägg indexerade
Senast granskad Jun 27, 2026

Osäker på vad din fil är?

Släpp valfri fil i vår identifierare - vi läser bara de första byten för att namnge formatet.

Identifiera en fil

Vad är filformatet PYO?

En .pyo-fil är en föråldrad Python-optimerad bytekodfil som skapas av CPython-tolken när den körs med flaggan -O (optimera) eller -OO. Om man använder -O tas assert-satser bort från den kompilerade bytekoden; med -OO tas dessutom alla docstrings bort, vilket minskar filstorleken något.

Internt är .pyo-filer identiska i formatet byte-för-byte med .pyc-filer: en 16-byte header (4-byte versionsspecifikt magiskt nummer, 4-byte flaggfält, 4-byte tidsstämpel eller källhash, 4-byte källstorlek) följt av ett serialiserat (marshalled) CPython-kodobjekt. Optimeringsnivån återspeglas endast i det kompilerade innehållet - aldrig i filens header.

Filändelsen .pyo fasades ut i Python 3.5 genom PEP 488 (september 2015) och genereras inte längre av någon aktuell Python-version. Från Python 3.5 och framåt lagras optimerad bytekod i __pycache__ med namn som module.cpython-311.opt-1.pyc (för -O) eller .opt-2.pyc (för -OO). Om du stöter på en .pyo-fil idag härstammar den från Python 2 eller Python 3.0-3.4-kod.

.pyo-filer är inte portabla mellan olika CPython-versioner - det magiska numret ändras vid varje utgåva. Verktyg som uncompyle6 (Python 2-3.8) och decompyle3 (Python 3.7-3.11) kan dekompilera .pyo-filer tillbaka till ungefärlig .py-källkod, även om noggrannheten varierar beroende på Python-version och kodens komplexitet.

Säkerhet & trygghet

RISK: MEDIUM

En .pyo-fil körs som Python-bytekod med alla förmågor hos ett Python-skript - filsystemåtkomst, nätverk, körning av underprocesser. Kör aldrig en .pyo från en otillförlitlig källa. Antivirusprogram skannar ofta inte innehållet i .pyo-filer. Skadliga Python-appar distribueras ibland som enbart bytekod (.pyc/.pyo) för att göra reverse engineering svårare, även om dekompilatorer till stor del kan återställa källkoden.

Formatdetaljer

i ett nötskal
FULLSTÄNDIGT NAMNPython Optimized Bytecode File (legacy)även känd som Python compiled optimized file, PYO file
UTVECKLAREPython Software Foundation (CPython)sedan Early CPython (1990s); same as .pyc but with optimizations (assert removal with -O; docstring removal with -OO)
MIME-TYPapplication/x-python-code
TYPBinär CPython-bytekod (samma format som .pyc; genererad med flaggan -O eller -OO)
STANDARDÖppen · royaltyfri

Program som öppnar PYO-filer

Windows4 apps
Python (run the file) Öppen källkod Kör «python file.pyo» från kommandotolken (endast Python 2 / 3.0-3.4). På Python 3.5+ byt namn till .pyc först eller använd matchande Python-version.
decompyle3 (decompile to .py) Öppen källkod pip install decompyle3 och sedan «decompyle3 file.pyo > file.py». Fungerar på Python 3.7-3.8 bytekod.
uncompyle6 (decompile Python 2-3.8) Öppen källkod pip install uncompyle6 och sedan «uncompyle6 file.pyo > file.py». Stöder Python 2.4-3.8.
VS Code (view bytecode with extension) Öppen källkod Byt namn på .pyo till .pyc, använd sedan tillägget «Python Disassembler» eller «Bytecode Viewer» för att inspektera opkoder.
macOS1 app
Python Öppen källkod Kör «python file.pyo» med matchande Python-version. De flesta Linux-distributioner inkluderar Python.
Linux1 app
Python Öppen källkod Kör «python file.pyo» med matchande Python-version. De flesta Linux-distributioner inkluderar Python.
Web1 app
Decompiler.com (online decompile) Gratis Ladda upp .pyo-filen; webbplatsen dekompilerar Python-bytekod (inklusive .pyo) tillbaka till .py i webbläsaren.

Tekniska detaljer

djup specifikation
FormatrelationIdentiskt filformat byte-för-byte med `.pyc`; skiljs endast åt av filändelsen och optimeringsinnehållet
Header-struktur16-byte header: 4-byte versions-magic + 4-byte flaggor + 4-byte käll-mtime eller hash + 4-byte källstorlek
InnehållsformatSerialiserat CPython-kodobjekt (bytekod-instruktioner, konstantpool, namn, variabelnamn, nästlade kodobjekt)
ByteordningLittle-endian (CPython marshal-serialiseringsformat)
Optimeringsnivå -OTar bort `assert`-satser från kompilerad bytekod
Optimeringsnivå -OOTar bort `assert`-satser och alla docstrings från kompilerad bytekod
UtfasningFiländelsen `.pyo` togs bort i Python 3.5 (PEP 488, september 2015); genereras inte av någon aktuell Python-utgåva
Modern motsvarighet`module.cpython-3X.opt-1.pyc` (nivå 1) eller `.opt-2.pyc` (nivå 2) lagrad i `__pycache__`
VersionsportabilitetInte portabel mellan CPython-versioner; det magiska numret i bytes 0-3 ändras med varje större CPython-utgåva
IntegritetsvalideringPython 3.7+ (PEP 552): valfri SipHash av källkod lagrad i header-flaggor; Python 2 / tidig 3: endast mtime-jämförelse
Dekompileringsverktyg`uncompyle6` (Python 2-3.8), `decompyle3` (Python 3.7-3.11)
Historisk omfattningProducerades endast av Python 2 eller Python 3.0-3.4; påträffas inte i projekt som siktar på Python 3.5 eller senare
SläpptEarly CPython (1990s); same as .pyc but with optimizations (assert removal with -O; docstring removal with -OO)
Senaste 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
Öppen standardJa · royaltyfri
Specifikationpeps.python.org

PYO-konverteringar

Frågor & svar

frågat av användare
Ställ en snabb fråga
Få hjälp från personer som arbetar med PYO-filer. Var specifik - inkludera ditt system och programversion.
Inget konto behövs · svar vanligtvis inom en dag

Inga frågor än - bli den första att fråga om PYO-filer.

Vanliga frågor

Vad är en .pyo-fil?
En föråldrad Python-optimerad bytekodfil - den kompilerade formen av ett .py-skript skapat med Pythons optimeringsflagga -O eller -OO. Identiskt binärt format som .pyc; genererades av Python 2 och Python 3.0-3.4. Python 3.5+ skapar inte längre .pyo-filer.
Hur öppnar jag en .pyo-fil?
Du öppnar den inte direkt - Python kör den automatiskt. För att läsa dess innehåll, använd decompyle3 eller uncompyle6 för att dekompilera den tillbaka till .py-källkod, eller byt namn till .pyc och använd en bytekod-disassembler.
Kan jag ta bort .pyo-filer?
Ja - .pyo-filer är bytekod-cachar. Python återskapar dem vid behov. Att ta bort dem förstör inte en fungerande Python-installation eller app (förutsatt att .py-källfilerna finns kvar).
Vad är skillnaden mellan .pyo och .pyc?
.pyo kompilerades med -O (asserts borttagna) eller -OO (docstrings också borttagna); .pyc kompilerades utan optimering. Det binära formatet är identiskt. Python 3.5+ slog ihop dem till .opt-1.pyc / .opt-2.pyc.
Varför skapar inte Python 3.5+ .pyo-filer?
PEP 488 (2015) tog bort .pyo eftersom det var förvirrande att ha två filändelser för samma binära format. Optimeringsnivån kodas nu in i filnamnets suffix för .pyc (.opt-1.pyc, .opt-2.pyc).
Hur dekompilerar jag en .pyo för att få Python-källkoden?
Använd decompyle3 (Python 3.7-3.8) eller uncompyle6 (Python 2-3.8): «pip install decompyle3 && decompyle3 file.pyo». Eller ladda upp till decompiler.com för ett webbaserat alternativ. Resultaten kan vara ofullständiga, särskilt för -OO-kompilerade filer som saknar docstrings.

Referenser

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

Fortsätt utforska

genom databasen

Populära filtillägg denna vecka

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

Relaterade filtillägg

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

Gratis filverktyg

En filidentifierare och bildkonverterare direkt i webbläsaren - allt körs på din enhet.

Öppna verktygslådan

Bläddra bland filtillägg A-Ö