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

Pubblicato da Michele Saba

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.


Come installare e utilizzare 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


L'eseguibile creato da PyInstaller

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.


Opzioni aggiuntive PyInstaller su Windows

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 soprattutto 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.


Come creare programmi desktop con Python

Ora che sappiamo che grazie a PyInstaller possiamo distribuire i nostri script Python senza dover preoccuparci di configurazioni complesse o dipendenze mancanti, possiamo pensare di creare dei file eseguibili anche programmi più complessi e articolati, come un’applicazione desktop. Python offre diverse opzioni per la creazione di interfacce grafiche per applicazioni desktop: le più utilizzate sono Tkinter e Kivy.

  • Tkinter fa parte della Standard Library di Python e permette di creare GUI per desktop multipiattaforma composte da finestre, menu, tasti, caselle per inserire il testo e molto altro ancora.
  • Kivy è un framework open-source per Python per la creazione di interfacce grafiche per desktop e per smartphone che include una libreria di funzionalità e widget progettati per rispettare le specifiche del Material Design di Google.

Potrete quindi creare applicazione con interfacce grafiche utilizzando uno di questi strumenti e poi renderli facilmente eseguibili utilizzando PyInstaller!

Se siete interessati a saperne di più sulla creazione di applicazioni Desktop, vi consiglio di dare un'occhiata alla nostra serie di lezioni dedicate a Tkinter e a quelle dedicata a Kivy!

Happy Coding! :D


Vuoi imparare Python come un/a professionista? Dai uno sguardo ai nostri