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.
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.
path) |
path) |
csidl_string) |
"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().
target, description, filename[, arguments[, workdir[, iconpath[, iconindex]]]]) |
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.