5 Instalación Personalizada

Muchas veces, los esquemas de instalación alternativos descritos en la sección  no hacen lo que se les ha pedido. A lo mejor le gustaría manipular uno o dos directorios, mientras mantiene a todo bajo el mismo directorio base, o tambien podría redefinir el mismo esquema de instalación. En cualquier caso, estará creando un esquema de instalación personalizada.

Habrá notado la columna de ``opciones a suplantar'' (override options) en las tablas descritas en los anteriores esquemas de instalación. Estas opciones constituyen como usted define un esquema de instalación personalizada. Estas opciones a suprimir pueden ser relativas, absolutas o definidas explicitamente en alguno de los directorios de instalación base. (Hay dos directorios de instalación base, normalmente son los mismos y sólo difieren al utilizar el esquema de prefijo de Unix y dados las opciones --prefix y --exec-prefix ambas diferentes.)

Por ejemplo, cuando se está instalando una distribución de módulos en su directorio ``home'' bajo Unix, pero desea que los guiones estén en  /scripts en vez de  /bin. Como se podría esperar se puede suplantar este directorio con la opción --install-scripts; en este caso, tiene más sentido proveer una ruta relativa, interpretada como relativa al directorio de instalación base (en este caso su directorio ``home''):

python setup.py install --home=~ --install-scripts=scripts

Otro ejemplo bajo Unix: Suponga que su instalación de Python fué construida con un prefijo de /usr/local/python, Entonces bajo una instalación estándar, los guiones terminan en /usr/local/python/bin. Si los desea en /usr/local/bin,debe suministrar el directorio absoluto para la opción --install-scripts:

python setup.py install --install-scripts=/usr/local/bin
Esto realiza una intalación utilizando el ``esquema de prefijo'' donde el prefijo con lo que fué instalado su interpretador de Pyhton, en este caso con /usr/local/python.

Si usted mantiene Python bajo Windows, tambien querrá que sus módulos generados por terceros se ubiquen en un subdirectorio prefix, en ves de prefix. Esto resulta tan facíl como la personalización del directorio de instalación de los guiones de inicio o setup, sólo tiene que recordar que hay dos tipos de módulos por los que preocuparse, módulos puros y ``no puros'' (por ejemplo: modulos de uns distribución ``no pura). Por ejemplo:

python setup.py install --install-purelib=Site --install-platlib=Site
Los directorios de instalación especificado estan relativos a prefix. Por supuesto, usted debe asegurarse que esos directorios están en la ruta de búsqueda para los módulos de Python, por ejemplo colocando un archivo .pth en prefix.

Si quiere definir un esquema completo de instalación, debe suplir todas las opciones de los directorios de instalación. La manera recomendada es la de suplir las rutas relativas; por ejemplo, si desea mantener todos los archivos relacionados a módulos Python en python e su directorio ``home'', y desea un directorio por separado para cada plataforma que utilice su directorio ``home'', debería definir el siguiente esquema de instalación:

python setup.py install --home=~ \
                        --install-purelib=python/lib \
                        --install-platlib=python/lib.$PLAT \
                        --install-scripts=python/scripts
                        --install-data=python/data
o su equivalente,
python setup.py install --home=~/python \
                        --install-purelib=lib \
                        --install-platlib='lib.$PLAT' \
                        --install-scripts=scripts
                        --install-data=data
$PLAT no es necesariamente una variable de entorno, ésta se expande por la acción de Distutils al referenciar las opciones de línea de comandos (como cuando se referencia los archivos de configuración).

Obviamente, el especificar el esquema de instalación cada vez que instala una nueva distribución de un módulo resulta tedioso. Para evitarlo, pueden incluirse estas opciones en en su archivo de configuración de Distutils (revise la sección ):

[install]
install-base=$HOME
install-purelib=python/lib
install-platlib=python/lib.$PLAT
install-scripts=python/scripts
install-data=python/data
o su equivalente,
[install]
install-base=$HOME/python
install-purelib=lib
install-platlib=lib.$PLAT
install-scripts=scripts
install-data=data
Note que no son equivalentes si se suministra un directorio de instalación base al ejecutarse el guion de inicio. Por ejemplo,
python setup.py --install-base=/tmp
Esto instalará módulos puros a /tmp/python/lib en el primer caso y en /tmp/lib en el segundo caso (para el segundo caso, probablemente querrá suministrar la instalación base de /tmp/python).

Probablemente habrá notado el uso de $HOME y $PLAT en el archivo de configuración de ejemplo. Éstas son configuraciones de las variables de Distutils, sumamente similares a las variables de entorno. De hecho, se puede utilizar variables de entorno en los archivos config --en aquellas plataformas que sostienen dicha noción-- pero las variables de Distutils definen algunas variables adicionales que no pueden ser utilizadas como las variables de entorno, tal y como la variable $PLAT. (Y por supuesto, solo se puede utilizar la variable de configuración suministradas por Distutils en sistemas que no cuenten con variables de sistemas como resulta en Mac OS (** cierto? **).) refierase a la sección  para más detallas.

** si necesita ejemplos en Windows and Mac OS -- cuando los esquemas de instlación personalizados son necesarios en esas plataformas? **


Ver Sobre este documento... para obtener información sobre sugerencias.