Hvorfor konvertere PY til PYC?
Forhåndskompilering til .pyc lar Python hoppe over parsetrinnet ved neste kjøring, noe som gir en mindre forbedring i oppstartshastighet. Det gir også en mild form for obfuskering siden bytekoden ikke er menneskelig lesbar kildekode, selv om den kan dekompileres med verktøy som uncompyle6.
Hvordan konvertere PY til PYC
Python (py_compile) FREE
Kjør python -m py_compile yourscript.py i en terminal; .pyc-filen vises i undermappen __pycache__ ved siden av skriptet ditt, navngitt med Python-versjonsmerket.
Python (compileall) FREE
Kjør python -m compileall /path/to/project for å kompilere hver eneste .py-fil i et mappetre på én gang; alle .pyc-filer vises i sine respektive __pycache__-undermapper.
Om disse formatene
En .py-fil er en kildekodefil for Python - ren tekst som inneholder et program eller skript skrevet i språket Python. For å lese koden, åpne den i et hvilket som helst…
Åpne .PY-detaljer →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…
Åpne .PYC-detaljer →Kvalitet og hva du bør passe på
- En
.pyc-fil er knyttet til den nøyaktige Python-versjonen som kompilerte den - en fil kompilert med Python 3.12 vil ikke lastes i Python 3.11 eller tidligere, fordi hver versjon bygger inn et unikt «magic number» i hodefeltet. .pycer ikke ekte kildekodebeskyttelse - verktøy somuncompyle6kan dekompilere bytekode tilbake til lesbar Python-kildekode; ikke stol på dette for å beskytte åndsverk.- Python 3 skriver alltid
.pyc-filer til en__pycache__-undermappe, aldri ved siden av kildefilen; den gamle.pyo-utvidelsen for optimalisert bytekode ble fjernet i Python 3.5.
Ofte stilte spørsmål
Må jeg kompilere manuelt til PYC, eller gjør Python det automatisk?
.pyc automatisk første gang den kjøres. Den manuelle py_compile-kommandoen er nyttig for forhåndskompilering uten kjøring eller for å fange opp syntaksfeil tidlig.Kan jeg distribuere bare PYC-filene uten den originale PY-kildekoden?
.pyc-filer er versjonsspesifikke og kan dekompileres. Standard praksis er å distribuere .py-kildekoden i stedet.Hvor legger Python PYC-filen?
__pycache__-undermappe ved siden av .py-kilden, med et navn som yourscript.cpython-312.pyc som gjenspeiler Python-versjonen som kompilerte den.