.PYC

PYC-fil

Compiled Python Bytecode File
Still et spørsmål
HURTIGSVAR

En .pyc-fil er kompilert Python-bytecode som CPython bufrer automatisk for å øke hastigheten på oppstarten. Du trenger vanligvis ikke å åpne eller røre den. For å kjøre en, bruk den samsvarende Python-versjonen. For å gjenopprette kildekoden fra en .pyc, bruk en dekompilator som decompyle3 eller pycdc - resultatene er tilnærmet like og kan mislykkes på nyere Python-versjoner.

Utvikler: Python Software Foundation (CPython) Kategori: Utviklerfiler Åpen standard MIME: application/x-python-code
ÅPNES PÅ Windows macOS Linux
Relatert: .DO · .MD · .HEX · .XSD

På denne siden

19k+ filendelser indeksert
Sist vurdert Jun 30, 2026

Usikker på hva filen din er?

Slipp hvilken som helst fil inn i vår identifikator - vi leser bare de første bytene for å navngi formatet.

Identifiser en fil

Hva er PYC-filformatet?

.pyc-filer brukes av programmeringsspråket Python. En .pyc-fil er en kjørbar fil som inneholder kompilert bytecode for et program skrevet i Python-kildekode. Bytecode er et sett med instruksjoner for tolken (interpreter) for å kjøre programmet uten å måtte tolke den opprinnelige kildekoden på nytt ved hver oppstart, noe som øker hastigheten på import og oppstartstid.

.pyc-filer følges av sine relaterte .py-kildekodefiler. Python kompilerer en .py-fil og lagrer resultatet i en .pyc-fil, som deretter kan brukes til å kjøre programmet direkte. Siden Python 3.2 blir disse bufferfilene plassert i en __pycache__-undermappe ved siden av kildekoden, med tolkens versjon innebygd i filnavnet (for eksempel script.cpython-312.pyc).

Hver .pyc-fil begynner med et 16-byte hode (header). De første to bytene er et versjonsspesifikt «magic number» - det endres med hver CPython-utgivelse - etterfulgt av 0x0D 0x0A (CR LF) ved byte 2-3. De resterende hode-bytene inneholder enten kildekodens tidsstempel og størrelse (standard) eller en kildekode-hash for deterministiske, reproduserbare bygg, en ordning introdusert av PEP 552 i Python 3.7. Etter hodet inneholder filen et «marshalled» kodeobjekt som kan inspiseres med Pythons innebygde dis-modul.

.pyc-bytecode er knyttet til en spesifikk CPython-versjon - en fil kompilert under Python 3.11 vil ikke lastes under Python 3.12. Det eldre .pyo formatet for optimalisert bytecode ble fjernet i Python 3.5; optimaliserte bygg produserer nå .opt-1.pyc eller .opt-2.pyc-filer i stedet. For å dekompilere en .pyc tilbake til lesbar kildekode, brukes ofte verktøy som uncompyle6, decompyle3 og pycdc (Decompyle++), selv om kompatibiliteten varierer etter Python-versjon. På Windows bruker kompilerte utvidelsesmoduler det relaterte .pyd-formatet.

Sikkerhet og trygghet

RISIKO: MEDIUM

En .pyc er bytecode som Python-tolken UTFØRER, så en ondsinnet .pyc kan kjøre vilkårlig kode akkurat som et skript - kjør aldri en .pyc fra en upålitelig kilde. Det er også en vanlig teknikk for å skjule skadevare (ved å kun sende kompilert bytecode). Motsatt gir distribusjon av egen kode som .pyc svært svak beskyttelse: den kan dekompileres og, som et minimum, demonteres med den medfølgende «dis»-modulen, så det er IKKE en reell måte å holde kildekoden hemmelig på. Sletting av __pycache__ / .pyc-filer er trygt - Python regenererer dem automatisk fra .py-kildene.

Formatdetaljer

i et nøtteskall
FULLT NAVNCompiled Python Bytecode File
UTVIKLERPython Software Foundation (CPython)siden Early CPython (1990s); current header layout (PEP 552 hash-based, deterministic) since Python 3.7, 2018
MIME-TYPEapplication/x-python-code
TYPEBinær CPython-bytecode (marshalled kodeobjekt med et versjonert hode)
STANDARDÅpen · royalty-fri

Programmer som åpner PYC-filer

Windows3 apps
Python (run it) Åpen kildekode Kjør den med SAMSVARENDE Python-versjon: «python module.pyc». Tolken utfører bytecode direkte - men versjonen må stemme med den som kompilerte den.
decompyle3 / uncompyle6 (decompile) Åpen kildekode Gjenopprett kildekode: «pip install decompyle3» deretter «decompyle3 fil.pyc > fil.py». Fungerer best for Python opp til ca. 3.8; kommentarer/formatering går tapt.
pycdc (Decompyle++) Åpen kildekode For nyere Python (3.9+) der uncompyle6 feiler: bygg pycdc og kjør «pycdc fil.pyc». Gjør et ærlig forsøk; nøyaktigheten på de nyeste versjonene er begrenset.
macOS2 apps
Python (run it) Åpen kildekode Kjør den med SAMSVARENDE Python-versjon: «python module.pyc». Tolken utfører bytecode direkte - men versjonen må stemme med den som kompilerte den.
uncompyle6 / decompyle3 (decompile) Åpen kildekode Installer via pip og dekompiler til .py; samme versjonsforbehold som på Windows.
Linux2 apps
Python (run it) Åpen kildekode Kjør den med SAMSVARENDE Python-versjon: «python module.pyc». Tolken utfører bytecode direkte - men versjonen må stemme med den som kompilerte den.
decompyle3 / pycdc (decompile) Åpen kildekode pip install decompyle3 (eller bygg pycdc for 3.9+), dekompiler deretter .pyc tilbake mot .py.

Tekniske detaljer

dyp spesifikasjon
UtviklerPython Software Foundation (CPython)
MIME-typeapplication/x-python-code
FilstrukturBinær - 16-byte versjonert hode etterfulgt av et marshalled Python-kodeobjekt
Magic numberByte 0-1: versjonsspesifikk 2-byte verdi (varierer per CPython-utgivelse); byte 2-3: alltid 0x0D 0x0A (CR LF)
Hode-layout32-bit magic, 32-bit bitfelt-flagg, deretter enten 32-bit mtime + 32-bit kildestørrelse (tidsstempel-modus) eller en 32-bit kilde-hash (PEP 552 hash-modus)
Buffer-mappeLagret i __pycache__/ siden Python 3.2; filnavnet koder tolkens versjon, f.eks. script.cpython-312.pyc
VersjonskompatibilitetHver CPython-versjon skriver et unikt magic number; en .pyc fra Python 3.11 vil ikke lastes under 3.12 og omvendt
Plattform-portabilitetPlattformuavhengig innenfor samme CPython-versjon - samme .pyc kjører på Windows, macOS og Linux med en samsvarende tolk
Optimaliserte varianterpython -O og python -OO produserer .opt-1.pyc og .opt-2.pyc (fjerner asserts og docstrings); .pyo-utvidelsen ble pensjonert i Python 3.5
Kontroll av autogenereringCPython skriver .pyc-filer automatisk ved import; undertrykkes av -B-flagget eller miljøvariabelen PYTHONDONTWRITEBYTECODE=1
Demontering / dekompileringPythons innebygde dis-modul demonterer bytecode; tredjepartsverktøy uncompyle6, decompyle3 og pycdc (Decompyle++) forsøker kildekoderekonstruksjon
Internt serialiseringsformatKodeobjekter serialiseres med marshal-modulen - et kompakt binærformat forskjellig fra pickle, ikke en del av det stabile offentlige API-et
Hash-baserte byggPEP 552 (Python 3.7+) introduserte hash-baserte .pyc-filer: hodet lagrer en kildekode-hash i stedet for mtime for reproduserbare bygg
UtgittEarly CPython (1990s); current header layout (PEP 552 hash-based, deterministic) since Python 3.7, 2018
Åpen standardJa · royalty-fri
Spesifikasjondocs.python.org

PYC-konverteringer

Spørsmål og svar fra fellesskapet

spurt av brukere
Still et raskt spørsmål
Få hjelp fra folk som jobber med PYC-filer. Vær spesifikk - inkluder systemet ditt og programvareversjon.
Ingen konto nødvendig · svar vanligvis innen en dag

Ingen spørsmål ennå - vær den første til å spørre om PYC-filer.

Ofte stilte spørsmål

Hva er en .pyc-fil og kan jeg slette den?
Det er kompilert Python-bytecode som Python bufrer for å starte raskere. Du kan trygt slette .pyc-filer og __pycache__-mapper - Python gjenskaper dem fra .py-kildekoden neste gang den kjører.
Hvordan konverterer jeg en .pyc tilbake til .py-kildekode?
Ved å dekompilere den. Bruk decompyle3 eller uncompyle6 for Python opp til 3.8 («decompyle3 fil.pyc > fil.py»), eller pycdc for Python 3.9+. Resultatene er tilnærmet like - kommentarer og nøyaktig formatering går tapt - og kan mislykkes på de nyeste Python-versjonene.
Hvorfor vil ikke .pyc-filen min kjøre?
Nesten alltid skyldes det et versjonssamsvar: en .pyc er knyttet til den nøyaktige CPython-versjonen som opprettet den (magic number). Kjør den med samme versjon, eller hent den originale .py-filen og la din Python kompilere den på nytt.
Skjuler jeg kildekoden min ved å sende .pyc i stedet for .py?
Kun i liten grad. .pyc kan dekompileres tilbake til lesbar Python og kan alltid demonteres med den innebygde «dis»-modulen. Det hindrer tilfeldig innsyn, men er ikke reell beskyttelse.
Hva er inni en __pycache__-mappe?
Bufrede .pyc-filer navngitt som module.cpython-311.pyc - én per importert modul, merket med Python-versjonen. Det er en automatisk ytelsesbuffer og er trygg å fjerne.
Kan jeg kjøre en .pyc uten .py-filen?
Ja, hvis du har den samsvarende Python-versjonen: «python module.pyc». .py-filen trengs bare for redigering eller for at Python skal kunne generere bufferen på nytt.

Referanser

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

Utforsk videre

på tvers av databasen

Populære filendelser denne uken

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

Relaterte filendelser

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

Gratis filverktøy

En filidentifikator og bildekonvertering i nettleseren - alt kjører på din enhet.

Åpne verktøykassen

Bla i filendelser A-Å