.PYC

PYC-fil

Compiled Python Bytecode File
Stil et spørgsmål
HURTIGT SVAR

En .pyc-fil er kompileret Python bytecode, som CPython gemmer automatisk for at fremskynde opstart. Du behøver normalt ikke at åbne eller røre den. For at køre en skal du bruge den matchende Python-version. For at gendanne kildekoden fra en .pyc skal du bruge en decompiler såsom decompyle3 eller pycdc - resultaterne er omtrentlige og kan fejle på nyere Python-versioner.

Udvikler: Python Software Foundation (CPython) Kategori: Udviklerfiler Åben standard MIME: application/x-python-code
ÅBNER PÅ Windows macOS Linux
Relateret: .DO · .MD · .HEX · .XSD

På denne side

19k+ filtyper indekseret
Sidst gennemset Jun 30, 2026

Er du ikke sikker på, hvad din fil er?

Træk en fil over i vores identifikator - vi læser kun de første bytes for at navngive formatet.

Identificer en fil

Hvad er PYC-filformatet?

.pyc-filer bruges af programmeringssproget Python. En .pyc-fil er en eksekverbar fil, der indeholder kompileret bytecode til et program skrevet i Python-kildekode. Bytecode er et sæt instruktioner til fortolkeren, så den kan køre programmet uden at skulle gen-analysere den oprindelige kildekode ved hver opstart, hvilket fremskynder import- og opstartstid.

.pyc-filer ledsages af deres relaterede .py-kildekodefiler. Python kompilerer en .py-fil og gemmer resultatet i en .pyc-fil, som derefter kan bruges til at køre programmet direkte. Siden Python 3.2 placeres disse cache-filer i en __pycache__-undermappe ved siden af kildekoden, med fortolkerversionen indlejret i filnavnet (for eksempel script.cpython-312.pyc).

Hver .pyc-fil begynder med en 16-byte header. De første to bytes er et versionsspecifikt «magic number» - det ændres ved hver CPython-udgivelse - efterfulgt af 0x0D 0x0A (CR LF) ved byte 2-3. De resterende header-bytes indeholder enten et tidsstempel og størrelse for kildekoden (standard) eller en hash af kildekoden til deterministiske, reproducerbare builds, en ordning introduceret af PEP 552 i Python 3.7. Efter headeren indeholder filen et «marshalled» kodeobjekt, der kan inspiceres med Pythons indbyggede dis-modul.

.pyc-bytecode er bundet til en specifik CPython-version - en fil kompileret under Python 3.11 vil ikke kunne indlæses under Python 3.12. Det ældre .pyo optimerede bytecode-format blev fjernet i Python 3.5; optimerede builds producerer nu .opt-1.pyc eller .opt-2.pyc filer i stedet. For at dekompilere en .pyc tilbage til læsbar kildekode bruges værktøjer som uncompyle6, decompyle3 og pycdc (Decompyle++) ofte, selvom kompatibiliteten varierer efter Python-version. På Windows bruger kompilerede udvidelsesmoduler det relaterede .pyd format.

Sikkerhed og tryghed

RISIKO: MEDIUM

En .pyc er bytecode, som Python-fortolkeren EKSEKVERER, så en ondsindet .pyc kan køre vilkårlig kode ligesom et script - kør aldrig en .pyc fra en upålidelig kilde. Det er også en almindelig teknik til at skjule malware (ved kun at sende kompileret bytecode). Omvendt giver distribution af din egen kode som .pyc meget svag beskyttelse: den kan dekompileres og som minimum skilles ad med det medfølgende «dis»-modul, så det er IKKE en reel måde at holde kildekoden hemmelig på. Sletning af __pycache__ / .pyc-filer er sikkert - Python regenererer dem automatisk fra .py-kilderne.

Formatdetaljer

kort fortalt
FULDSTÆNDIGT NAVNCompiled Python Bytecode File
UDVIKLERPython 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 en versioneret header)
STANDARDÅben · royaltyfri

Programmer der åbner PYC-filer

Windows3 apps
Python (run it) Open-source Kør den med den MATCHENDE Python-version: «python module.pyc». Fortolkeren eksekverer bytecode direkte - men versionen skal matche den, der kompilerede den.
decompyle3 / uncompyle6 (decompile) Open-source Gendan kildekode: «pip install decompyle3» og derefter «decompyle3 fil.pyc > fil.py». Fungerer bedst til Python op til ~3.8; kommentarer/formatering går tabt.
pycdc (Decompyle++) Open-source Til nyere Python (3.9+), hvor uncompyle6 fejler: byg pycdc og kør «pycdc fil.pyc». Bedste forsøg; nøjagtigheden på de nyeste versioner er begrænset.
macOS2 apps
Python (run it) Open-source Kør den med den MATCHENDE Python-version: «python module.pyc». Fortolkeren eksekverer bytecode direkte - men versionen skal matche den, der kompilerede den.
uncompyle6 / decompyle3 (decompile) Open-source Installer via pip og dekompiler til .py; samme versionsforbehold som på Windows.
Linux2 apps
Python (run it) Open-source Kør den med den MATCHENDE Python-version: «python module.pyc». Fortolkeren eksekverer bytecode direkte - men versionen skal matche den, der kompilerede den.
decompyle3 / pycdc (decompile) Open-source pip install decompyle3 (eller byg pycdc til 3.9+), og dekompiler derefter .pyc tilbage mod .py.

Tekniske detaljer

dyb specifikation
UdviklerPython Software Foundation (CPython)
MIME-typeapplication/x-python-code
FilstrukturBinær - 16-byte versioneret header efterfulgt af et marshalled Python-kodeobjekt
Magic numberByte 0-1: versionsspecifik 2-byte værdi (varierer per CPython-udgivelse); byte 2-3: altid 0x0D 0x0A (CR LF)
Header-layout32-bit magic, 32-bit bit-felt flag, derefter enten 32-bit mtime + 32-bit kildestørrelse (tidsstempel-tilstand) eller en 32-bit kilde-hash (PEP 552 hash-tilstand)
Cache-mappeGemt i __pycache__/ siden Python 3.2; filnavnet koder fortolkerversionen, f.eks. script.cpython-312.pyc
VersionskompatibilitetHver CPython-version skriver et unikt magic number; en .pyc fra Python 3.11 vil ikke indlæses under 3.12 og omvendt
Platform-portabilitetPlatformuafhængig inden for samme CPython-version - den samme .pyc kører på Windows, macOS og Linux med en matchende fortolker
Optimerede varianterpython -O og python -OO producerer .opt-1.pyc og .opt-2.pyc (fjerner asserts og docstrings); .pyo-filtypen blev pensioneret i Python 3.5
Styring af autogenereringCPython skriver .pyc-filer automatisk ved import; undertrykkes af -B flaget eller miljøvariablen PYTHONDONTWRITEBYTECODE=1
Disassembly / dekompileringPythons indbyggede dis-modul skiller bytecode ad; tredjepartsværktøjer uncompyle6, decompyle3 og pycdc (Decompyle++) forsøger kildekoderekonstruktion
Internt serialiseringsformatKodeobjekter serialiseres med marshal-modulet - et kompakt binært format adskilt fra pickle, ikke en del af den stabile offentlige API
Hash-baserede buildsPEP 552 (Python 3.7+) introducerede hash-baserede .pyc-filer: headeren gemmer en kildekode-hash i stedet for mtime for reproducerbare builds
UdgivetEarly CPython (1990s); current header layout (PEP 552 hash-based, deterministic) since Python 3.7, 2018
Åben standardJa · royaltyfri
Specifikationdocs.python.org

PYC-konverteringer

Fællesskabets Q&A

spurgt af brugere
Stil et hurtigt spørgsmål
Få hjælp fra folk, der arbejder med PYC-filer. Vær specifik - medtag dit system og din softwareversion.
Ingen konto nødvendig · svar normalt inden for en dag

Ingen spørgsmål endnu - vær den første til at spørge om PYC-filer.

Ofte stillede spørgsmål

Hvad er en .pyc-fil, og kan jeg slette den?
Det er kompileret Python bytecode, som Python gemmer for at starte hurtigere. Du kan trygt slette .pyc-filer og __pycache__-mapper - Python genopretter dem fra .py-kildekoden, næste gang den kører.
Hvordan konverterer jeg en .pyc tilbage til .py-kildekode?
Ved at dekompilere den. Brug decompyle3 eller uncompyle6 til Python op til 3.8 («decompyle3 fil.pyc > fil.py»), eller pycdc til Python 3.9+. Resultaterne er omtrentlige - kommentarer og præcis formatering går tabt - og det kan fejle på de nyeste Python-versioner.
Hvorfor vil min .pyc-fil ikke køre?
Det skyldes næsten altid et versions-mismatch: en .pyc er bundet til den nøjagtige CPython-version, der oprettede den (magic number). Kør den med den samme version, eller hent den originale .py og lad din Python genkompilere den.
Skjuler det min kildekode, hvis jeg kun sender .pyc i stedet for .py?
Kun i svag grad. .pyc kan dekompileres tilbage til læsbar Python og altid skilles ad med det indbyggede «dis»-modul. Det afskrækker tilfældig kiggen, men er ikke reel beskyttelse.
Hvad er der inde i en __pycache__-mappe?
Cachede .pyc-filer navngivet som module.cpython-311.pyc - én per importeret modul, mærket med Python-versionen. Det er en automatisk ydelses-cache og er sikker at fjerne.
Kan jeg køre en .pyc uden .py-filen?
Ja, hvis du har den matchende Python-version: «python module.pyc». .py-filen er kun nødvendig for redigering eller for at Python kan regenerere cachen.

Referencer

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

Udforsk mere

på tværs af databasen

Populære filtyper i denne uge

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.MDMarkdown Document
4.BINCD/DVD Disc Image (BIN/CUE)
5.PARTPartial Download File
6.RPMSGRestricted Permission Message
7.NOMEDIAAndroid No-Media Marker File
8.EXEWindows Executable (Portable Executable)
9.AVIFAV1 Image File Format (AVIF)
10.ICSiCalendar data file

Relaterede filtyper

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

Gratis filværktøjer

En fil-identifikator og billedkonverter direkte i browseren - alt kører på din enhed.

Åbn værktøjskassen

Gennemse filtyper A-Å