Subsections


5.3 Creare un installer Windows

Gli installer di eseguibili sono il formato naturale per le distribuzioni di binari in Windows. Mostrano una gradevole interfaccia utente e forniscono alcune informazioni circa la distribuzione del moduli che deve essere installata, prendendola dai metadata nello script di setup; lasciano all'utente la selezione di alcune opzioni e l'avvio e lo stop dell'installazione.

Siccome i metadata vengono presi dallo script di setup, creare installer per Windows � solitamente tanto facile quanto eseguire:

python setup.py bdist_wininst

o il comando bdist con l'opzione --formats:

python setup.py bdist --formats=wininst

Se si ha a disposizione una distribuzione di moduli puri (contenenti soltanto puri moduli e package Python), il risultante installer sar� una versione indipendente e avr� un nome simile a foo-1.0.win32.exe. Questi installer possono essere creati sia su piattaforme Unix che su quelle Mac OS.

Se si ha a disposizione una distribuzione non pura, le estensioni possono essere create solo su piattaforme Windows e saranno dipendenti dalla versione di Python. Il nome dell'installer riflette questo ed assume la forma di foo-1.0.win32-py2.0.exe. Si deve creare un installer separato per ogni versione Python che si vuole supportare.

L'installer cercher� di compilare i moduli puri in bytecode dopo l'installazione sul sistema di destinazione in modalit� normale ed ottimizzata. Se non si vuole che questo accada, si pu� eseguire il comando bdist_wininst con una od entrambe le opzioni --no-target-compile e --no-target-optimize.

In modo predefinito l'installer mostrer�, una volta avviato, il gradevole logo ``Python Powered'' ma si pu� anche fornire il progrio logo, che deve essere un file Windows .bmp con l'opzione --bitmap.

L'installer mostrer� anche un grande titolo sullo sfondo della finestra quando viene eseguito, che verr� costruito dal nome della propria distribuzione ed il numero di versione. Questo pu� essere sostituito con altro testo usando l'opzione --title.

Il file installer verr� scritto nella ``directory di distribuzione'' -- normalmente dist/, ma � personalizzabile con l'opzione --dist-dir.


5.3.1 Lo script di post installazione

A partire da Python 2.3, uno script di post installazione pu� essere specificato con l'opzione --install-script. Il nome di base dello script deve essere specificato ed il nome dello script deve anche essere elencato nell'argomento degli script nella funzione di setup.

Questo script verr� eseguito durante la fase di installazione sul sistema di destinazione, dopo che tutti i file sono stati copiati, con argv[1] impostato a -install, e nuovamente durante la fase di disinstallazione, prima che i file siano rimossi con argv[1] impostato a -remove.

Lo script di installazione viene eseguito internamente all'installatore di windows, ogni output (sys.stdout, sys.stderr) viene rediretto in un buffer e verr� mostrato nell'ambiente grafico, GUI, dopo che lo script � terminato.

Alcune funzioni particolarmente utili in questo contesto sono disponibili come funzioni integrate aggiuntive nello script di installazione.

directory_created( path)
file_created( path)
Queste funzioni dovrebbero essere chiamate quando una directory o file viene creata dallo script post-install durante la fase di installazione. Si deve registrare path con l'uninstaller, in modo da rimuovere i file quando la distribuzione verr� disinstallata. Per sicurezza, le directory vengono rimosse solo se sono vuote.

get_special_folder_path( csidl_string)
Questa funzione pu� essere usata per recuperare la posizione delle directory speciali di Windows come il Menu di Avvio o il Desktop. Restituisce il percorso completo della directory. csidl_string deve essere una delle seguenti stringhe:

"CSIDL_APPDATA"

"CSIDL_COMMON_STARTMENU"
"CSIDL_STARTMENU"

"CSIDL_COMMON_DESKTOPDIRECTORY"
"CSIDL_DESKTOPDIRECTORY"

"CSIDL_COMMON_STARTUP"
"CSIDL_STARTUP"

"CSIDL_COMMON_PROGRAMS"
"CSIDL_PROGRAMS"

"CSIDL_FONTS"

Se la directory non pu� essere recuperata, viene sollevata l'eccezione OSError.

Quale directory � disponibile dipende dalla versione esatta di Windows e probabilmente anche dalla configurazione. Per i dettagli si faccia riferimento alla documentazione Microsoft per la funzione SHGetSpecialFolderPath().

create_shortcut( target, description, filename[, arguments[, workdir[, iconpath[, iconindex]]]])
Questa funzione crea uno shortcut. target � il percorso del programma che deve essere avviato dallo shortcut. description � la descrizione dello shortcut. filename � il titolo dello shortcut che l'utente vedr�. arguments specifica gli argomenti da riga di comando, se ce ne sono. workdir � la directory di lavoro del programma. iconpath � il file contenente l'icona per lo shortcut e iconindex � l'indice dell'icona nel file iconpath. Per ulteriori dettagli si consulti la documentazione Microsoft per l'interfaccia IShellLink.

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.