Python comincia a prendere il sopravvento su tutti gli altri linguaggi di programmazione per la sua “infinita” semplicità. Allora perché non sfruttare tutte le sue potenzialità su Windows?
Bene, non è poi tanto facile anche perché NON ESISTE IN GIRO UNA GUIDA AGGIORNATA quindi vi do una mano io.
Per prima cosa è necessario reperire questi strumenti:
- Python 2.5 (le ultime versioni danno problemi con pygobject o glib);
- Gtk Runtime Environment (se non utilizzate Glade) o Gtk Glade (se utilizzate Glade);
- Binding Python: PyCairo, PyGObject, PyGtk (Attenzione: dovete prendere quelli compatibili Python 2.5);
- Py2exe – Per creare degli eseguibili (anche qui è necessaria la versione compatibile Python 2.5);
Una volta terminata l’installazione (nell’ordine con cui ve l’ho proposta) è necessario controllare che tutto sia ben configurato e che funzioni.
Per prima cosa bisogna controllare che la variabile d’ambiente “PATH” contenga il percorso delle nostre librerie:
Path su Windows 7:
- Click Destro su Computer;
- Proprietà;
- Impostazioni di Sistema Avanzate;
- Variabili D’Ambiente;
Path su Windows XP:
- Click destro su Risorse del Computer;
- Proprietà;
- Avanzate;
- Variabili d’ambiente;
Sotto “Variabili di Sistema” cercate la variabile “Path” e, all’interno ci saranno una serie di percorsi concatenati da ‘ ; ‘ .
Controllate che tra questi percorsi sia presente <percorso alle gtk2>/bin ad esempio:
C:\Program Files\GTK2-Runtime\bin\
Inoltre vi consiglio di impostare come variabile d’ambiente C:\Python25\ poichè in tal modo è possibile lanciare python da directory di windows tramite la shell (che, inevitabilmente sarà necessaria).
Adesso che tutto ciò è fatto bisogna testare che davvero tutto funzioni: lanciate una python shell e scrivete “import gtk” e, se avrete intenzione di utilizzare Glade tentate un “import gtk.glade”, se tutto ciò funziona siamo a cavallo, altrimenti rivedete bene la guida e fate un giro su google, poi lasciate un commento sia che abbiate risolto il problema, sia che non lo abbiate fatto.
Adesso siete in grado di programmare su Windows con Python, create il vostro programma come fareste anche su Linux (come editor di testo vi consiglio GEdit, ma anche PythonWin va benissimo).
Creare il file eseguibile
Tramite py2exe è possibile creare un file eseguibile che non richieda all’utente finale l’installazione di python e GTK . Per prima cosa è necessario creare un file python “setup.py”.
In cui ci sono i seguenti campi:
- Opts: contiene un dizionario “py2exe” che contiene a sua volta due opzioni: includes (che sarebbero le librerie da distribuire con l’exe), dll_excludes (che sarebbero le librerie da eliminare). Successivamente si procede con una chiamata a Setup a cui passare queste opzioni;
- Name: Nome del programma;
- Description: Descrizione;
- Version: Versione;
- Windows: ha più campi, lo “script” serve per far capire a py2exe da dove comincia il codice, icon_resources sono le icone che utilizzeremo all’interno del programma (ho utilizzato l’indice 1 perchè è l’indice tramite il quale viene mostrata l’icona già da risorse del computer, vi consiglio anche di provare tutte fino al 4 perchè ancora non ho capito bene come fuzionano.)
- data_files: sono i “dati”, cioè le risorse aggiuntive (ad esempio il file .glade, eventuali immagini, file Leggimi e quant’altro);
Notate bene: nel file ho riportato l’inclusione e, contemporaneamente, l’esclusione delle DLL necessarie al funzionamento del programma poichè ho scelto di distribuire, insieme all’installer del mio programma, anche l’installer del GTK Runtime poichè il Gtk Runtime permette di utilizzare un tema visivo molto più confortevole e temizzato.
Ovviamente se si elimina dll_excludes, tutte le dll necessarie al funzionamento del programma verranno incluse nella cartella “dist” (che vedremo tra pochi step).
Terminata la creazione dello script inseriamolo nella cartella contenente l’eseguibile principale python (il lanciatore del programma insomma) e, tramite shell, diamo il comando:
python setup.py py2exe
al termine di questo comando verranno generate due cartelle “build” e “dist”, all’interno di “dist” ci sarà il nostro eseguibile con tutte le dll necessarie al funzionamento del programma.
Se utilizzate glade, tramite lo script sopracitato importerà anche le DLL necessarie al funzionamento di gtk.glade!
Creazione dell’installer con Innosetup
Innosetup mi ha piacevolmente sorpreso ed è utilizzato da tutti poiché è anche free ed open-source, quind scaricatelo.
Dopo aver installato il tutto vi consiglio di seguire il wizard di creazione che contiene tutti i campi che possiamo agognare da un gestore di setup.
Alla fine del wizard saremo già pronti ad eseguire l’installer tramite “Build” -> “Compile”.
A questo punto nella directory predefinita (o quella che abbiamo deciso noi per l’output) apparirà un “setup.exe”.
Il nostro programma è quasi pronto ad essere rilasciato, ma ci sono degli accorgimenti che dobbiamo prendere:
- Dobbiamo eseguire l’installer e verificare che le risorse siano accessibili (potrebbero esserci problemi con Windows 7 per via dei diritti, io ancora non ne ho riscontrati) se ciò si verificasse è necessario avviare l’eseguibile da amministratore (chi ha qualche dritta da dare, è sempre ben accetta);
- Attenzione a come programmiamo perchè se identifichiamo le “risorse” (come icone, immagini, file glade) con la notazione “./resources/file.glade” piuttosto che “c:/program files/software/resources/file.glade”, cioè utilizziamo path relativi piuttosto che path assoluti, è necessario modificare ogni riga dello script di installazione innosetup nella sezione [Icons] accodando l’opzione WorkingDir: “{app}” in questo modo
- Name: “{group}\Adsense-Monitor”; Filename: “{app}\Controller.exe”; WorkingDir: “{app}”
- Infine, se vogliamo distribuire il GTK Runtime Environment insieme alla nostra applicazione (ed installarlo durante la procedura di installazione) è necessario inserire innanzitutto il file di installazione del Gtk Runtime (ed es: gtk2-runtime-2.16.6.exe) all’interno del setup (quindi quando vengono chiesti quali file aggiungere durante il wizard); infine aggiungere la riga nella sezione [Run] dello script Innosetup
- Filename: “{app}\gtk2-runtime-2.16.6.exe”
Se avete domande basta chiedere tramite i commenti.