2011-09-08 10 views
8

¿Es posible especificar durante la generación del instalador (o durante la instalación real) una ruta personalizada para los módulos de Python? A modo de ejemplo, digamos que tengo 5 módulos para los que genero un instalador usando:Anular el directorio de instalación predeterminado para Python bdist Windows installer

c:\>python setup.py bdist 

Todo está empaquetado correctamente, pero cuando instalo, me veo obligado a instalar en site-packages. Necesito poder especificar un directorio personalizado de mi (o la elección del instalador). Como mínimo, debo poder anular el valor predeterminado para que mi ruta personalizada aparezca como la predeterminada.

¿Es esto posible usando una distribución construida?

Respuesta

1

Desde correr python setup.py --help install:

Options for 'install' command: 
    --prefix        installation prefix 
    --exec-prefix      (Unix only) prefix for platform- 
             specific files 
    --home        (Unix only) home directory to install 
             under 
    --user        install in user site-package 
             '/home/jterrace/.local/lib/python2.7/si 
             te-packages' 
    --install-base      base installation directory (instead of 
             --prefix or --home) 
    --install-platbase     base installation directory for 
             platform-specific files (instead of -- 
             exec-prefix or --home) 
    --root        install everything relative to this 
             alternate root directory 
+1

Gracias. El instalador generado por bdist es un ejecutable. No estoy ejecutando setup.py desde una línea de comandos. –

+0

¿eh? ¿te refieres a bdist o bdist_wininst? – jterrace

+0

sí, bdist_wininst. –

10

Usted debe escribir setup.cfg donde puede especificar las opciones de instalación (véase python setup.py install --help salida) y luego ejecutar python setup.py bdist. Al crear distro binario, python hará la instalación tonta bajo el subdirectorio "compilar" con estas opciones y creará el instalador desde esta instalación estúpida. Por ejemplo, si desea crear bdist que instala bibliotecas a/some/lib/ruta y scripts a/some/bin/ruta de crear la siguiente setup.cfg:

[install] 
prefix=/ 
install_lib=/some/lib/path 
install_scripts=/some/bin/path 

Y a continuación, ejecutar python setup.py bdist

1

Creo que la respuesta de MaxSin fue algo correcta. Sin embargo, para utilizar su respuesta para el comando: "setup.py pitón bdist_wininst" que tendría que hacerlo de esta manera:

[bdist_wininst] 
prefix=/ 
install_lib=/some/lib/path 
install_scripts=/some/bin/path 

En vista de que la sintaxis es here:

[command] 
option=value 
... 

edición:

Parece que esto no funciona :(no estoy seguro de una posible otra solución.

+0

Voy a probar esto y daré su opinión sobre si me funciona. – pianist1119

Cuestiones relacionadas