4.2 Instalación Alternativa: Unix (El esquema de prefijo)

El ``Esquema de prefijo'' se utiliza cuando se desea utilizar una instalación de Pyhton para realizar la construcción/instalación (por ejemplo, ejecutar el guion de instalación o setup), pero la instalación de los módulos en el directorio de instalación para módulos generados por terceros, en un directorio distinto del de la instalación de Python (o que luzca diferente a un directorio de instalación de Pyhton). Si esto le parece un tanto inusual, es por que realmente lo es, por esa razón el ``esquema home'' siempre va de primero. Sin embargo, hay al menos dos casos conocidos donde el esquema de prefijo es de mucha utilidad.

Primero, considere que en muchas distribuciones de Linux, Python se instala en /usr, a diferencia del tradicional /usr/local. Esto resulta apropiado si se considera que Python se instala como parte del ``sistema'' a diferencia de una adicion extra. Sin embargo cuando se instala módulos de Python a partir de una distribución, probablemente se desee que estos se instalaen en /usr/local/lib/python1.X en vez de /usr/lib/python1.X. This can be done with

/usr/bin/python setup.py install --prefix=/usr/local

Otra posibilidad es, en un sistema de redes de archivos, donde el nombre para escritura en un directorio remoto difiere del nombre para lectura, por ejemplo, el interpretador de Python accesado en /usr/local/bin/python buscaría los módulos en /usr/local/lib/python1.X, pero estos módulos tendrian que ser instalados en /mnt/@server/export/lib/python1.X. Esto pudiera lograrse utilizando

/usr/local/bin/python setup.py install --prefix=/mnt/@server/export

De cualquier manera, la opción --prefix define la instalación base específica para cada plataforma, utilizada por archivos específicos de cada plataforma. (En la actualidad esto implica aquellas distribuciones de módulos ``no puras'', pero se puede expandir a librerias de C, ejecutables binarios,etc.) Si no se asigna --exec-prefix, se toma por defecto a --prefix. Los archivos se instalan como sigue:

Tipo de archivo  Directorio de Instalación  opcion Override 
distribución pura de módulo prefix/lib/python1.X/site-packages --install-purelib
distribución de módulo (no pura) exec-prefix/lib/python1.X/site-packages --install-platlib
scripts prefix/bin --install-scripts
data prefix/share --install-data

No hay ningún requerimiento para que --prefix o --exec-prefix apunten a una instalación alterna de Python. Si los mencionados directorios no existen, estos so creados al momento de la instalación.

Incidentalmente la verdadera razón de la importancia del esquemo de prefijo es que las instalaciones estándar bajo Unix utilizan dicho esquema pero con --prefix y --exec-prefix dados por Python (como sys.prefix y sys.exec_prefix). En consecuencia se podria pensar que no hay ninguna otra necesidad de utilizar el esquema de prefijo, pero la verdad es que cada vez que se ejecuta python setup.py install sin mas opciones esta haciendo uso de ello.

Note que el instalar extensiones en una instalación alterna de Python no causa ningún efecto en como esas extensiones han sido construidas: en particular, los archivos de cabecera de Python (Python.h y conocidos) con el interpretador de Pyhton utilizado para ejecutar el guion de inicio o setup, siendo utilizado para compilar las extensiones. Es su responsabilidad la de asegurarse que el interpretador para ejecutar las extensiones instaladas de esta manera, es compatible con el interpretador utilizado en su construcción y que ambos interpretadores son de la misma version de Python (posiblemente diferentes construcciones o posiblemente copias de la misma construcción). (por supuesto, si su --prefix y --exec-prefix ni siquiera apuntan a una instalación alterna de Pyhton, esto es totalmente irrelevante.)


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