2012-04-03 6 views
5

Estoy intentando crear un instalador desde una aplicación de Python que codificamos. Escribí un archivo setup.py simple y genera un archivo .msi sin problema, pero no puedo encontrar la manera de especificar la ruta de instalación predeterminada. No deseamos que se instale en el directorio predeterminado "C: \ Archivos de programa". ¿Ayuda?¿Cómo especifico la ruta de instalación predeterminada de un msi en cx_freeze y distutils?

+0

así que encontré que puedo añadir el "- -initial-target-dir "flag a la línea: ' python setup.py bdist_msi --initial-target-dir' pero esperaba hacerlo en el archivo setup.py. – Cesar

Respuesta

2

Distutils tiene una funcionalidad bastante limitada cuando se trata de crear instaladores. Sugeriría que usas NSIS en su lugar. Es bastante simple y te permite personalizar mucho más que distutils.

La otra forma sería añadir manualmente --initial-meta-dir a la lista de argumentos en setup.py (antes de llamar a la función setup):

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

La advertencia de esto es que necesitamos que sea compatible con Python 3, que, si estoy leyendo el sitio correctamente, NSIS no es compatible. Disculpas por no mencionar esto antes. – Cesar

+0

NSIS debería funcionar con cualquier cosa, no es específico de python y no depende de python, por lo que la versión de Python no importa. Sin embargo, hay otra forma en que podría hacerlo, y he actualizado la respuesta con eso. – aquavitae

+0

Gracias! ¡Eso debería funcionar perfectamente para nosotros! – Cesar

Cuestiones relacionadas