2012-04-03 12 views
5

Sto provando a creare un programma di installazione da un'applicazione Python che abbiamo codificato. Ho scritto un semplice file setup.py e genera un file .msi senza problemi, ma non riesco a capire il modo in cui specificare il percorso di installazione predefinito. Non vogliamo che si installi nella directory predefinita "C: \ Programmi". Aiuto?Come specificare il percorso di installazione predefinito di un msi in cx_freeze e distutils?

+0

Così ho trovato che posso aggiungere il "- -initial-target-destinazione "flag sulla riga: ' python setup.py bdist_msi --initial-target-dir' ma speravo di farlo nel file setup.py. – Cesar

risposta

2

Distutils è piuttosto limitato nella funzionalità quando si tratta di creare programmi di installazione. Ti suggerirei di usare invece NSIS. È abbastanza semplice e ti consente di personalizzare molto più delle distutils.

L'altro modo sarebbe quello di aggiungere manualmente --initial-target-dir alla lista degli argomenti in setup.py (prima di chiamare la funzione setup):

if 'bdist_msi' in sys.argv: 
    sys.argv += ['--initial-target-dir', 'c:\default\path'] 
+0

L'avvertenza a questo è che abbiamo bisogno che sia compatibile con Python 3, che, se sto leggendo il sito correttamente, NSIS non supporta. Mi scuso per non averlo menzionato prima. – Cesar

+0

NSIS dovrebbe funzionare con qualsiasi cosa - non è specifico per Python e non si basa su python, quindi la versione python non ha importanza. C'è un altro modo in cui potresti farlo anche tu, e ho aggiornato la risposta con esso. – aquavitae

+0

Grazie! Questo dovrebbe funzionare perfettamente per noi! – Cesar

Problemi correlati