Hvorfor konvertere PY til PYC?
Præ-kompilering til .pyc lader Python springe analysefasen over ved næste kørsel, hvilket giver en mindre forbedring af opstartshastigheden. Det giver også en mild sløring (obfuscation), da bytecoden ikke er menneskeligt læsbar kildekode, selvom den kan dekompileres med værktøjer som uncompyle6.
Sådan konverterer du PY til PYC
Python (py_compile) FREE
Kør python -m py_compile yourscript.py i en terminal; .pyc-filen vises i undermappen __pycache__ ved siden af dit script, navngivet med Python-versionsmærket.
Python (compileall) FREE
Kør python -m compileall /path/to/project for at kompilere alle .py-filer i et mappetræ på én gang; alle .pyc-filer vises i deres respektive __pycache__-undermapper.
Om disse formater
En .py-fil er en Python kildekodefil - almindelig tekst, der indeholder et program eller script skrevet i Python-sproget. For at læse koden skal du åbne den i et hvilket som helst…
Åbn .PY detaljer →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…
Åbn .PYC detaljer →Kvalitet & hvad man skal være opmærksom på
- En
.pyc-fil er bundet til den nøjagtige Python-version, der kompilerede den - en fil kompileret med Python 3.12 vil ikke indlæses i Python 3.11 eller tidligere, fordi hver version indlejrer et unikt «magic number» i headeren. .pycer ikke reel kildekodebeskyttelse - værktøjer somuncompyle6kan dekompilere bytecode tilbage til læsbar Python-kildekode; stol ikke på det til at beskytte intellektuel ejendom.- Python 3 skriver altid
.pyc-filer i en__pycache__-undermappe, aldrig ved siden af kildefilen; den gamle.pyooptimerede bytecode-udvidelse blev fjernet i Python 3.5.
Ofte stillede spørgsmål
Skal jeg kompilere manuelt til PYC, eller gør Python det automatisk?
.pyc, første gang det kører. Den manuelle py_compile-kommando er nyttig til præ-kompilering uden kørsel eller til at fange syntaksfejl tidligt.Kan jeg distribuere kun PYC-filerne uden den originale PY-kilde?
.pyc-filer er versionsspecifikke og kan dekompileres. Standardpraksis er at distribuere .py-kildekoden i stedet.Hvor lægger Python PYC-filen?
__pycache__-undermappe ved siden af .py-kilden, med et navn som yourscript.cpython-312.pyc, der afspejler den Python-version, der kompilerede den.