Come Creare File Eseguibili per Python (da .PY a .EXE) | Programmare in Python

Come Creare File Eseguibili per Python (da .PY a .EXE)

Pubblicato il 29 Luglio 2019



Ciao a tutti developers e benvenuti a questo nuovo tutorial!

Vedremo oggi come creare file eseguibili a partire dai nostri script Python, in modo da poter eseguire e condividere i nostri programmi facilmente, in quanto una volta generate queste applicazioni che creeremo a partire dai nostri file, sarà sufficiente cliccarci sopra per poterle lanciare, senza bisogno di avere l'interprete Python o altre dipendenze installate nel sistema!

Ad esempio se avete degli amici o colleghi con cui volete condividere un vostro programma, o se volete creare un eseguibile da portare con voi senza dovervi preoccupare di settare il sistema ogni volta che dovete usarlo, bene questo tutorial è ciò che stavate aspettando!

Per fare ciò useremo un tool chiamato pyinstaller.

Pyinstaller funziona perfettamente sia su Windows che Linux e Mac OS, e quindi tutti i comandi che vi mostrerò in questo tutorial saranno gli stessi che dovrete dare anche voi, qualunque sia il sistema operativo su cui vi trovate.

È molto importante inoltre tenere a mente che pyinstaller non è un cross-compiler, ovvero come molti di voi avranno già ipotizzato, potrete creare eseguibili solamente per il sistema operativo che state utilizzando.

Se intendete creare un file .exe ad esempio, quindi un eseguibile per Windows, potrete fare ciò solamente da Windows. Lo stesso discorso vale per i file .app utilizzabili su Mac OS, e per gli eseguibili Linux.

La procedura di creazione delle nostre applicazioni è davvero molto, molto semplice: all'interno dell'ambiente virtuale che stiamo utilizzando col nostro script Python diamo il comando:


>>> pip install pyinstaller

Una volta fatto ciò possiamo utilizzarlo come un qualsiasi software da riga di comando, allo stesso modo con cui installiamo moduli tramite pip:


>>> pyinstaller nome_script.py --onefile

Diamo uno sguardo all'output, nella cartella su cui stiamo lavorando, e vediamo che sono stati creati alcuni nuovi file e cartelle.


L'unico file di cui avremo bisogno, il file che ci interessa e che potremo quindi condividere, sarà presente all'interno della cartella dist.

Come vedete tutto funziona perfettamente e possiamo utilizzare il programma senza dover necessariamente sapere come usare Python, come configurarlo, come creare un ambiente virtuale, installare le dipendenze necessarie e così via!

Dentro a questo file eseguibile è presente tutto ciò che è necessario al nostro programma per funzionare correttamente.

Qualora vi troviate su Windows e stiate generando l'eseguibile per un programma con interfaccia grafica, come in questo caso, vi consiglio di aggiungere un'altra opzione:


>>> pyinstaller nome_script.py --noconsole --onefile

L'opzione --noconsole farà si che l'unica finestra mostrata in questi casi sia quella dell'interfaccia grafica del vostro programma, in quanto di default su Windows verrà aperto anche un terminale di sistema che resterà attivo mentre il programma è in esecuzione, il che potrebbe creare confusione sopratutto in utenti meno esperti.

Vi consiglio di fare dei test e sperimentare in autonomia per comprendere a pieno ciò che intendo.


Non avrete invece bisogno di quest'opzione se vi troverete a creare eseguibili per semplici script utilizzabili da terminale, per ovvi motivi. 

Happy Coding! :D