12 Sezione 12 di 15
Creare il .exe e distribuire
Hai finito il tuo programma e vuoi distribuirlo a colleghi, studenti o clienti? Leo lo trasforma in un file .exe che parte con un doppio clic, senza che chi lo riceve debba installare Leo o Python.
Che cosa ottieni#
Un eseguibile Windows (.exe) che contiene il tuo programma, la parte di Leo che gli serve e, se ha finestre, la grafica. Chi lo riceve non installa niente: basta un doppio clic. L'eseguibile contiene solo ciò che il programma usa, quindi resta il più leggero possibile.
Che cosa serve#
- Windows: un
.exeper Windows si crea su Windows. - Leo installato nella versione con Python (la «versione cartella», con
installa.bat: vedi Installazione con Python), perché la creazione degli eseguibili usa PyInstaller. - PyInstaller nello stesso ambiente di Leo. Si installa una volta sola:
leo compilalo dice e mostra il comando esatto, oppure aggiungi--installae Leo lo installa dopo averti chiesto conferma. - Leo Studio: questa versione è gratuita e crea i
.exesenza chiave (vedi Licenza e aggiornamenti).
.venv\Scripts\python.exe -m pip install pyinstaller # una volta solaDa Leo Studio#
Apri il progetto e scegli Esegui → Crea eseguibile (.exe)… (oppure Crea .exe nella barra a sinistra, o Ctrl+K e eseguibile).
Leo Studio salva il progetto e crea l'eseguibile in un processo separato: puoi continuare a lavorare. L'avanzamento compare riga per riga nel pannello Uscita.
Alla fine una notifica ti avvisa e il pannello Uscita dice dove si trova il file: di solito nella cartella
eseguibiledel progetto.
Non si può creare l'eseguibile mentre il programma è in esecuzione: prima fermalo.
Dalla riga di comando: leo compila#
leo compila saluto.leoleo compila Rubricaleo compila Rubrica --nome "Rubrica 2026" --icona rubrica.icoleo compila Rubrica --autore "Anna Rossi" --descrizione "Rubrica dei contatti" --versione-programma 1.2leo compila Rubrica --un-fileAlla fine Leo scrive dove si trova l'eseguibile e un rapporto: il formato, la dimensione, le parti incluse e quelle tolte perché non servivano.
| Opzione | Significato |
|---|---|
--nome NOME | nome dell'eseguibile (predefinito: il nome del progetto o del file) |
--icona FILE.ico | icona dell'eseguibile e delle sue finestre (predefinita: lo stemma di Leo) |
--uscita CARTELLA | dove metterlo (predefinita: la cartella eseguibile accanto al programma) |
--cartella / --un-file | una cartella con l'.exe (predefinito) oppure un solo file |
--console / --finestra | con o senza la finestra nera della console (scelta automatica) |
--autore, --descrizione, --versione-programma | i dati che Windows mostra nelle proprietà del file |
--firma CERTIFICATO.pfx | firma digitale (vedi sotto) |
--installa | installa PyInstaller se manca, dopo conferma |
--upx | comprime ancora di più, se il programma UPX è installato |
Cartella o file unico?#
A Cartella (predefinito)
Una cartella con l'.exe (circa 2 MB) e le librerie accanto. Parte subito. Va distribuita tutta la cartella: comprimila in uno .zip.
B Un solo file (--un-file)
Un unico .exe, comodo da spedire. Però a ogni avvio si decomprime in una cartella temporanea, quindi parte più lentamente (qualche secondo con le finestre).
Come ordine di grandezza: un progetto semplice con le finestre occupa circa 50–60 MB come cartella (25 MB circa come file unico); un programma solo testuale circa 20 MB.
Autore, descrizione e versione#
In Esplora file → clic destro sull'exe → Proprietà → Dettagli Windows mostra nome, descrizione, versione e copyright. Invece di scriverli ogni volta nel comando, mettili nella sezione [progetto] di progetto.toml:
[progetto]
nome = "Rubrica"
autore = "Anna Rossi" # oppure ["Anna Rossi", "Bruno Neri"]
descrizione = "Rubrica dei contatti"
versione = "1.2"I file che il programma legge e scrive#
- Maschere, immagini, suoni e moduli importati sono dentro l'eseguibile e si trovano sempre.
- I file che il programma apre con un percorso relativo (
leggi_file("parole.txt")) si cercano nella cartella dell'eseguibile; lì finiscono anche i file che scrive. - I file di dati del progetto (
.txt,.csv,.json,.db…) vengono copiati accanto all'eseguibile, senza mai sovrascrivere quelli già presenti: le modifiche dell'utente restano. - Se nella cartella dell'eseguibile non si può scrivere (per esempio in
C:\Programmi), si usa una cartella con il nome del programma in quella dell'utente.
Prima di compilare Leo controlla gli errori di sintassi di tutti i file, che le maschere si leggano e che le immagini usate siano davvero dentro la cartella del progetto: se qualcosa non va, te lo dice prima di perdere minuti.
Firma digitale e l'avviso di SmartScreen#
Quando qualcuno avvia un programma scaricato da Internet e non firmato, Windows mostra l'avviso blu «Windows ha protetto il PC — App non riconosciuta». La firma digitale dice a Windows chi ha creato il programma e garantisce che non è stato modificato.
set LEO_PASSWORD_CERTIFICATO=la-passwordleo compila Rubrica --firma C:\Certificati\anna.pfx| Tipo di certificato | Costo | Toglie l'avviso agli altri? |
|---|---|---|
| personale (auto-firmato) | gratis | no: vale solo sul tuo PC |
| di un'autorità di certificazione | a pagamento, ogni anno | sì, dopo che il programma si è fatto una «reputazione» |
| Microsoft Trusted Signing | abbonamento mensile | sì (richiede la verifica dell'identità) |
Come si comporta l'eseguibile#
- Programmi testuali: quando la console è stata aperta con un doppio clic, alla fine aspetta Invio, così i risultati restano leggibili.
- Programmi con le finestre: gli errori compaiono in una finestra di messaggio.
- La correzione automatica è spenta: l'eseguibile non fa domande sul codice.
- Un eseguibile già creato funziona per sempre, anche senza Leo Studio installato: non contiene nessun controllo della licenza.