Vai al contenuto
Leo

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.

  • 5 minuti di lettura
  • Livello: intermedio

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 .exe per 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 compila lo dice e mostra il comando esatto, oppure aggiungi --installa e Leo lo installa dopo averti chiesto conferma.
  • Leo Studio: questa versione è gratuita e crea i .exe senza chiave (vedi Licenza e aggiornamenti).
Prompt dei comandi
.venv\Scripts\python.exe -m pip install pyinstaller      # una volta sola

Da Leo Studio#

  1. Apri il progetto e scegli Esegui → Crea eseguibile (.exe)… (oppure Crea .exe nella barra a sinistra, o Ctrl+K e eseguibile).

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

  3. Alla fine una notifica ti avvisa e il pannello Uscita dice dove si trova il file: di solito nella cartella eseguibile del progetto.

Non si può creare l'eseguibile mentre il programma è in esecuzione: prima fermalo.

Dalla riga di comando: leo compila#

Prompt dei comandi
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-file

Alla fine Leo scrive dove si trova l'eseguibile e un rapporto: il formato, la dimensione, le parti incluse e quelle tolte perché non servivano.

OpzioneSignificato
--nome NOMEnome dell'eseguibile (predefinito: il nome del progetto o del file)
--icona FILE.icoicona dell'eseguibile e delle sue finestre (predefinita: lo stemma di Leo)
--uscita CARTELLAdove metterlo (predefinita: la cartella eseguibile accanto al programma)
--cartella / --un-fileuna cartella con l'.exe (predefinito) oppure un solo file
--console / --finestracon o senza la finestra nera della console (scelta automatica)
--autore, --descrizione, --versione-programmai dati che Windows mostra nelle proprietà del file
--firma CERTIFICATO.pfxfirma digitale (vedi sotto)
--installainstalla PyInstaller se manca, dopo conferma
--upxcomprime 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.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.

Prompt dei comandi
set LEO_PASSWORD_CERTIFICATO=la-passwordleo compila Rubrica --firma C:\Certificati\anna.pfx
Tipo di certificatoCostoToglie l'avviso agli altri?
personale (auto-firmato)gratisno: vale solo sul tuo PC
di un'autorità di certificazionea pagamento, ogni annosì, dopo che il programma si è fatto una «reputazione»
Microsoft Trusted Signingabbonamento mensilesì (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.