Vai al contenuto

Converti PY in PYC

Crea bytecode CPython dal sorgente PY con l'interprete locale e la versione corretti.

Converti i file PY online

Non abbiamo ancora un convertitore online dedicato per PY in PYC, ma puoi convertire i file PY online in questi formati:

Vuoi convertire PY in PYC?

Faccelo sapere. Scegliamo le prossime conversioni da aggiungere in base all'interesse.

Come convertire py in pyc file

Un ambiente di distribuzione può richiedere il bytecode di CPython invece di un file sorgente, oppure uno sviluppatore può voler generare la cache di importazione per un progetto. La creazione di un file .pyc è un passaggio di compilazione locale eseguito dall’interprete Python che lo eseguirà, non una conversione generica di documenti.

Cos'è il formato PY

.py è un file sorgente Python in testo semplice contenente istruzioni, funzioni, classi, importazioni, commenti e altro codice del programma. Gli sviluppatori creano e modificano i file PY in Visual Studio Code, PyCharm, IDLE o qualsiasi editor di testo. CPython analizza il codice sorgente e lo compila in bytecode in memoria prima dell'esecuzione; ai moduli importati può anche essere scritto tale bytecode in un file di cache PYC.

Cos'è il formato PYC

.pyc è un file binario di bytecode prodotto da CPython. La sua intestazione contiene l'identificatore del bytecode dell'interprete e le informazioni sulla validità della cache; il resto contiene bytecode Python serializzato. CPython memorizza normalmente i file generati in __pycache__, utilizzando nomi come module.cpython-312.pyc.

Una cache può evitare di ricompilare un modulo importato non modificato, ma non è un sostituto eseguibile dell'intera applicazione e non nasconde il codice sorgente in modo sicuro. Il bytecode può essere ispezionato o decompilato e un file PYC rimane legato a una particolare implementazione e versione di Python.

Come creare un file PYC

Installare la versione ufficiale di CPython richiesta dal sistema di destinazione, quindi aprire un terminale nella directory contenente il file sorgente. Il comando python dell'interprete può essere denominato python3 su alcuni sistemi.

  1. Compilare un singolo file sorgente nella posizione normale della cache:
    python -m py_compile script.py
  2. Compilare tutti i file Python in una directory, incluse le sottodirectory:
    python -m compileall project_folder
  3. Inserire il PYC generato accanto al file sorgente invece che in __pycache__:
    python -m compileall -b script.py
  4. Specificare un nome file di output esatto con la libreria standard:
    python -c "import py_compile; py_compile.compile('script.py', cfile='output/script.pyc')"

La directory principale del percorso cfile deve già esistere. Utilizzare gli stessi comandi con python3 se questo è il nome dell'interprete installato. L'esecuzione diretta di uno script normalmente lo compila in memoria; l'importazione di un modulo è ciò che generalmente crea il relativo file di cache. Gli IDE compatibili con Python utilizzano l'interprete configurato e possono generare file PYC durante l'esecuzione o l'importazione dei moduli del progetto.

Utilizzare CPython locale invece di un convertitore online. Un servizio web riceverebbe il codice sorgente e potrebbe compilarlo con la versione errata di Python; non esiste alcun servizio di conversione online generico preferibile per il normale lavoro da PY a PYC. Un IDE o un terminale desktop fornisce la stessa compilazione tramite l'interprete locale selezionato.

Compatibilità e limitazioni

Un PYC creato da CPython 3.12 generalmente non può essere utilizzato da CPython 3.11, Python 2 o un'implementazione Python diversa. Compilare con la stessa versione principale e secondaria e, preferibilmente, con la stessa implementazione utilizzata nell'ambiente di distribuzione. CPython può ignorare e rigenerare una cache quando i relativi dati di validità basati su timestamp e dimensioni o su hash non corrispondono più al codice sorgente.

La compilazione rileva gli errori di sintassi, ma non verifica il comportamento del programma. Le dipendenze di runtime, i percorsi di importazione, le funzionalità del sistema operativo, la configurazione e gli errori di runtime rimangono irrisolti. I pacchetti importati devono comunque essere installati, a meno che l'applicazione non venga pacchettizzata separatamente. Per la distribuzione, utilizzare un wheel, un ambiente virtuale, un bundle eseguibile o un container quando appropriato; i file PYC isolati sono principalmente cache dell'interprete o artefatti di distribuzione specifici dell'implementazione.

Confronto formato: PY vs PYC

Come i formati PY e PYC si confrontano sulle proprietà più importanti per questa conversione.

Confronto dei formati PY e PYC
Proprietà .PY Python source file .PYC Python compiled bytecode
Leggibile come testo semplice Sì No
Formattazione del testo Base Nessuno
Immagini No No
Modifica successiva Facile Non modificabile direttamente
Si apre in un browser web No No
Dimensione tipica del file Piccolo Molto piccolo
Standard aperto Sì Sì
Ideale per Editing e post-produzione Incorporamento nelle applicazioni
Introdotto 1991 1991
Sviluppatore Python Software Foundation Python Software Foundation
Tipo MIME text/x-python —

Le informazioni su estensioni e tipi di file sono fornite da File-Extensions.org

Domande frequenti

La conversione di un file .py in .pyc elimina il codice sorgente Python?

Sì, il file .pyc contiene bytecode compilato anziché il sorgente originale leggibile. È destinato all'esecuzione e non è un sostituto completamente modificabile del file .py, anche se parte del bytecode può essere sottoposta a reverse engineering.

Qualsiasi versione di Python può eseguire un file .pyc creato da un file .py?

No, un file .pyc richiede generalmente la stessa versione o una versione compatibile di CPython e la stessa implementazione con cui è stato creato. Un'incompatibilità tra versioni causa comunemente un “bad magic number” o un altro errore di importazione.

Perché il mio file .pyc non funziona quando provo a eseguirlo da solo?

Un file .pyc viene normalmente compilato come modulo e può dipendere dal suo pacchetto, dagli import, dalla directory di lavoro e dall'ambiente di runtime. Può inoltre non funzionare se il sorgente conteneva errori di sintassi o di dipendenze, oppure se è stato compilato con impostazioni dell'interprete incompatibili.

Posso convertire un file .pyc nel file .py originale?

No, la compilazione da .py a .pyc non è un processo reversibile senza perdita. È possibile recuperare parte della struttura del codice dal bytecode, ma commenti, formattazione e talvolta le istruzioni esatte del sorgente vanno persi.

Altre conversioni di file .py

Conversione inversa

Conversione in .pyc
da altri formati

Condividi sui social media:

Già scaricato

Questo file è già stato scaricato. Per tutelare la tua privacy lo abbiamo eliminato dal nostro server subito dopo il download, quindi non può essere scaricato di nuovo. Se ti serve ancora, converti di nuovo il file.