.PYC

PYC-fil

Compiled Python Bytecode File
Ställ en fråga
SNABBT SVAR

En .pyc-fil är kompilerad Python-bytecode som CPython cachar automatiskt för att påskynda uppstarten. Du behöver normalt inte öppna eller röra den. För att köra en, använd matchande Python-version. För att återställa källkod från en .pyc, använd en dekompilator som decompyle3 eller pycdc - resultaten är ungefärliga och kan misslyckas på nyare Python-versioner.

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

På denna sida

19k+ filtillägg indexerade
Senast granskad Jun 30, 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 PYC?

.pyc-filer används av programmeringsspråket Python. En .pyc-fil är en körbar fil som innehåller kompilerad bytecode för ett program skrivet i Python-källkod. Bytecode är en uppsättning instruktioner för tolken att köra programmet utan att behöva parsa om den ursprungliga källkoden vid varje start, vilket påskyndar import- och uppstartstid.

.pyc-filer åtföljs av sina relaterade .py-källkodsfiler. Python kompilerar en .py-fil och sparar resultatet i en .pyc-fil, som sedan kan användas för att köra programmet direkt. Sedan Python 3.2 placeras dessa cachefiler i en underkatalog vid namn __pycache__ bredvid källkoden, med tolkens version inbäddad i filnamnet (till exempel script.cpython-312.pyc).

Varje .pyc-fil börjar med en 16-byte header. De första två byten är ett versionsspecifikt «magic number» - det ändras med varje CPython-utgåva - följt av 0x0D 0x0A (CR LF) vid byte 2-3. De återstående header-byten innehåller antingen källfilens tidsstämpel och storlek (standard) eller en hash av källfilen för deterministiska, reproducerbara byggen, ett schema som introducerades av PEP 552 i Python 3.7. Efter headern innehåller filen ett «marshalled» kodobjekt som kan inspekteras med Pythons inbyggda dis-modul.

.pyc-bytecode är bunden till en specifik CPython-version - en fil kompilerad under Python 3.11 kommer inte att laddas under Python 3.12. Det äldre .pyo-formatet för optimerad bytecode togs bort i Python 3.5; optimerade byggen skapar nu istället .opt-1.pyc- eller .opt-2.pyc-filer. För att dekompilera en .pyc tillbaka till läsbar källkod används ofta verktyg som uncompyle6, decompyle3 och pycdc (Decompyle++), även om kompatibiliteten varierar beroende på Python-version. På Windows använder kompilerade tilläggsmoduler det relaterade .pyd-formatet.

Säkerhet & trygghet

RISK: MEDIUM

En .pyc är bytecode som Python-tolken EXEKVERAR, så en skadlig .pyc kan köra godtycklig kod precis som ett skript - kör aldrig en .pyc från en okänd källa. Det är också en vanlig teknik för att dölja skadlig kod (genom att endast skicka med kompilerad bytecode). Omvänt ger distribution av din egen kod som .pyc ett mycket svagt skydd: den kan dekompileras och åtminstone tas isär med den medföljande «dis»-modulen, så det är INTE ett riktigt sätt att hålla källkod hemlig. Att radera __pycache__ / .pyc-filer är säkert - Python återskapar dem automatiskt från .py-källkoden.

Formatdetaljer

i ett nötskal
FULLSTÄNDIGT NAMNCompiled Python Bytecode File
UTVECKLAREPython Software Foundation (CPython)sedan Early CPython (1990s); current header layout (PEP 552 hash-based, deterministic) since Python 3.7, 2018
MIME-TYPapplication/x-python-code
TYPBinär CPython-bytecode (marshalled kodobjekt med en versionshanterad header)
STANDARDÖppen · royaltyfri

Program som öppnar PYC-filer

Windows3 apps
Python (run it) Öppen källkod Kör den med MATCHANDE Python-version: «python module.pyc». Tolken exekverar bytecode direkt - men versionen måste matcha den som kompilerade den.
decompyle3 / uncompyle6 (decompile) Öppen källkod Återställ källkod: «pip install decompyle3» och sedan «decompyle3 file.pyc > file.py». Fungerar bäst för Python upp till ~3.8; kommentarer/formatering går förlorade.
pycdc (Decompyle++) Öppen källkod För nyare Python (3.9+) där uncompyle6 misslyckas: bygg pycdc och kör «pycdc file.pyc». Gör sitt bästa; noggrannheten på de senaste versionerna är begränsad.
macOS2 apps
Python (run it) Öppen källkod Kör den med MATCHANDE Python-version: «python module.pyc». Tolken exekverar bytecode direkt - men versionen måste matcha den som kompilerade den.
uncompyle6 / decompyle3 (decompile) Öppen källkod Installera via pip och dekompilera till .py; samma versionsförbehåll som på Windows.
Linux2 apps
Python (run it) Öppen källkod Kör den med MATCHANDE Python-version: «python module.pyc». Tolken exekverar bytecode direkt - men versionen måste matcha den som kompilerade den.
decompyle3 / pycdc (decompile) Öppen källkod pip install decompyle3 (eller bygg pycdc för 3.9+), dekompilera sedan .pyc tillbaka till .py.

Tekniska detaljer

djup specifikation
UtvecklarePython Software Foundation (CPython)
MIME-typapplication/x-python-code
FilstrukturBinär - 16-byte versionshanterad header följt av ett marshalled Python-kodobjekt
Magic numberByte 0-1: versionsspecifikt 2-byte-värde (skiljer sig per CPython-utgåva); byte 2-3: alltid 0x0D 0x0A (CR LF)
Header-layout32-bitars magic, 32-bitars bit-field-flaggor, sedan antingen 32-bitars mtime + 32-bitars källstorlek (tidsstämpelläge) eller en 32-bitars källhash (PEP 552 hash-läge)
Cache-katalogLagras i __pycache__/ sedan Python 3.2; filnamnet kodar tolkens version, t.ex. script.cpython-312.pyc
VersionskompatibilitetVarje CPython-version skriver ett unikt magic number; en .pyc från Python 3.11 kommer inte att laddas under 3.12 och vice versa
PlattformsoberoendePlattformsoberoende inom samma CPython-version - samma .pyc körs på Windows, macOS och Linux med en matchande tolk
Optimerade varianterpython -O och python -OO skapar .opt-1.pyc och .opt-2.pyc (tar bort asserts och docstrings); filändelsen .pyo pensionerades i Python 3.5
Kontroll av autogenereringCPython skriver .pyc-filer automatiskt vid import; undertrycks med flaggan -B eller miljövariabeln PYTHONDONTWRITEBYTECODE=1
Disassembly / dekompileringPythons inbyggda dis-modul tar isär bytecode; tredjepartsverktyg som uncompyle6, decompyle3 och pycdc (Decompyle++) försöker rekonstruera källkoden
Internt serialiseringsformatKodobjekt serialiseras med modulen marshal - ett kompakt binärt format skilt från pickle, inte en del av det stabila publika API:et
Hash-baserade byggenPEP 552 (Python 3.7+) introducerade hash-baserade .pyc-filer: headern lagrar en hash av källfilen istället för mtime för reproducerbara byggen
SläpptEarly CPython (1990s); current header layout (PEP 552 hash-based, deterministic) since Python 3.7, 2018
Öppen standardJa · royaltyfri
Specifikationdocs.python.org

PYC-konverteringar

Frågor & svar

frågat av användare
Ställ en snabb fråga
Få hjälp från personer som arbetar med PYC-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 PYC-filer.

Vanliga frågor

Vad är en .pyc-fil och kan jag ta bort den?
Det är kompilerad Python-bytecode som Python cachar för att starta snabbare. Du kan säkert ta bort .pyc-filer och __pycache__-mappar - Python återskapar dem från .py-källkoden nästa gång programmet körs.
Hur konverterar jag en .pyc tillbaka till .py-källkod?
Genom att dekompilera den. Använd decompyle3 eller uncompyle6 för Python upp till 3.8 («decompyle3 file.pyc > file.py»), eller pycdc för Python 3.9+. Resultaten är ungefärliga - kommentarer och exakt formatering går förlorade - och det kan misslyckas på de senaste Python-versionerna.
Varför kan min .pyc-fil inte köras?
Det beror nästan alltid på en versionskonflikt: en .pyc är bunden till exakt den CPython-version som skapade den (dess magic number). Kör den med samma version, eller använd originalfilen .py och låt din Python kompilera om den.
Döljer jag min källkod genom att skicka med .pyc istället för .py?
Endast i begränsad utsträckning. .pyc kan dekompileras tillbaka till läsbar Python och kan alltid tas isär med den inbyggda «dis»-modulen. Det avskräcker tillfällig visning men är inget riktigt skydd.
Vad finns inuti en __pycache__-mapp?
Cachade .pyc-filer med namn som module.cpython-311.pyc - en per importerad modul, märkt med Python-versionen. Det är en automatisk prestandacache och är säker att ta bort.
Kan jag köra en .pyc utan .py-filen?
Ja, om du har den matchande Python-versionen: «python module.pyc». .py-filen behövs bara för redigering eller för att Python ska kunna generera om cachen.

Referenser

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

Fortsätt utforska

genom databasen

Populära filtillägg denna vecka

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.JPGJPEG Image
4.DATProgram Data File (generic)
5.EXEWindows Executable (Portable Executable)
6.RPMSGRestricted Permission Message
7.PARTPartial Download File
8.BINCD/DVD Disc Image (BIN/CUE)
9.DBSQLite Database File
10.JSONJavaScript Object Notation 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-Ö