Perché convertire PY in PYC?
La pre-compilazione in .pyc consente a Python di saltare la fase di analisi all'esecuzione successiva, offrendo un leggero miglioramento della velocità di avvio. Fornisce anche un lieve offuscamento poiché il bytecode non è un sorgente leggibile dall'uomo, sebbene possa essere decompilato con strumenti come uncompyle6.
Come convertire PY in PYC
Python (py_compile) FREE
Esegui python -m py_compile yourscript.py in un terminale; il file .pyc apparirà nella sottocartella __pycache__ accanto al tuo script, nominato con il tag della versione di Python.
Python (compileall) FREE
Esegui python -m compileall /path/to/project per compilare ogni file .py in un albero di directory in una sola volta; tutti i file .pyc appariranno nelle rispettive sottocartelle __pycache__.
Informazioni su questi formati
Un file .py è un file di codice sorgente Python - testo semplice contenente un programma o uno script scritto nel linguaggio Python. Per leggere il codice, aprilo in qualsiasi editor di…
Apri dettagli .PY →Un file .pyc è bytecode Python compilato che CPython memorizza automaticamente nella cache per velocizzare l'avvio. Normalmente non è necessario aprirlo o modificarlo. Per eseguirne uno,…
Apri dettagli .PYC →Qualità e a cosa prestare attenzione
- Un file
.pycè legato all'esatta versione di Python che lo ha compilato - un file compilato con Python 3.12 non verrà caricato in Python 3.11 o versioni precedenti, perché ogni versione incorpora un magic number univoco nell'intestazione. - Il formato
.pycnon è una vera protezione del sorgente - strumenti comeuncompyle6possono decompilare il bytecode in sorgente Python leggibile; non fare affidamento su di esso per proteggere la proprietà intellettuale. - Python 3 scrive sempre i file
.pycin una sottocartella__pycache__, mai accanto al file sorgente; la vecchia estensione del bytecode ottimizzato.pyoè stata rimossa in Python 3.5.
Domande frequenti
Devo compilare manualmente in PYC o Python lo fa automaticamente?
.pyc la prima volta che viene eseguito. Il comando manuale py_compile è utile per pre-compilare senza eseguire o per rilevare tempestivamente errori di sintassi.Posso distribuire solo i file PYC senza il sorgente PY originale?
.pyc sono specifici per la versione e possono essere decompilati. La pratica standard è distribuire invece il sorgente .py.Dove mette Python il file PYC?
__pycache__ accanto al sorgente .py, con un nome come yourscript.cpython-312.pyc che riflette la versione di Python che lo ha compilato.