You are on page 1of 11

Instalar mdulos de Python

Greg Ward
23 de diciembre de 2000 E-mail: gward@python.net
Resumen Este documento describe las Utilidades de Distribucin de Python (Distutils) desde la perspectiva del usuario nal, describiendo como extender las facilidades de una instalacin estndar en Python por medio de la creacin e instalacin de mdulos y extensiones generados por terceros.

ndice General
1 Introduccin 1.1 El mejor de los casos: La instalacin trivial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 El nuevo estndar: Distutils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 La manera tradicional: No estndar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Construccin e instalacin estndar 2.1 Variaciones en las plataformas . . 2.2 Dividiendo el trabajo . . . . . . . 2.3 Funcionamiento de la construccin 2.4 Funcionamiento de la instalacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 2 3 3 3 4 4 5 6 6 6 6 6 7 8 8 9 11 11 11 11

Construyendo extensiones: Consejos y Recomendaciones 3.1 Combinando los parmetros del compilador/enlazador (compiler/linker) . . . . . . . . . . . . . . . . 3.2 Utilizando compiladores destindos de Microsoft bajo Windows . . . . . . . . . . . . . . . . . . . . . Instalacin Alternativa 4.1 Instalacin Alternativa: Unix (Esquema home) . . . . 4.2 Instalacin Alternativa: Unix (El esquema de prejo) 4.3 Instalacin Alternativa: Windows . . . . . . . . . . . 4.4 Instalacin Alternativa: Mac OS . . . . . . . . . . . Instalacin Personalizada Archivos de Conguracin de Distutils Convenciones Pre-Distutils 7.1 el archivo Makele.pre.in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Instalacin manual de mdulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 6 7

Introduccin

Aunque la librera estndar de Python cubre la mayor parte de las necesidades de programacin, hay ocasiones en las que es necesario aadir nueva funcionalidad a la instalacin estndar utilizando mdulos generados por terceros. Esto puede ocurrir cuando se necesita soporte adicional para programas propios generados en Python o cuando se requiere soporte para alguna aplicacin cuyo cdigo fue escrito utilizando Python. Las anteriores instalaciones estndar de Python no ha contado con mucho soporte para los mdulos generados por terceros. Es a partir de la introduccin de las Utilidades de Distribucin de Python (abreviado Distutils) para Python 2.0 cuando se hace mayor nfasis en estos cambios. Sin embargo no todo va a cambiar de un da para otro, por ende este documento har referencia tanto a la instalacin de distribucin de mdulos que utilicen Distutils como a la instalacin de manera tradicional. Este documento est dirigido principalmente a aquellos interesados en la instalacin de mdulos generados por terceros: usuarios nales y administradores que necesitan ejecutar alguna aplicacin en Python y aquellos programadores de Python que desean aadir nuevas caractersticas a sus cajas de herramientas. Para leer este manual no es necesario tener conocimientos previos de Python. Durante el mismo se har referencia al modo interactivo de Python para as explorar su instalacin actual. Sin embargo, si lo que se desea es informacin sobre como distribuir mdulos propios de Python a otros usuarios, dirjase al siguiente manual: Distribucin de mdulos en python.

1.1

El mejor de los casos: La instalacin trivial

En el mejor de los casos, se contar con que alguien haya preparado una versin especial de la distribucin del mdulo que desea instalar, dirigida especcamente a su plataforma e instalada de la manera que se instalan otras aplicaciones y programas en su plataforma. Por ejemplo, quien desarrolla el mdulo podra generar un instalador disponible para los usuarios de la plataforma Windows, un paquete RPM para usuarios de sistemas basados en RPM (Red Hat, SuSE, Mandrake, entre otros), un paquete Debian para aquellos usuarios de sistemas Linux basados en la distribucin Debian (Debian propiamente dicho, Caldera, Corel, etc.) y as sucesivamente. En tales casos, se baja el instalador apropiado a su plataforma y se ejecuta o bien el programa instalador o rpminstall si es RPM, etc. No hay necesidad de ejecutar de ejecutar un guion de actualizacin o setup ni compilar ningn cdigo. Tal vez ni necesite las instrucciones de instalacin (aunque siempre es recomendable leer las instrucciones). Sin embargo,instalar un mdulo no siempre resultar tan fcil como parece. Posiblemente se est interesado en una distribucin de mdulo que an no cuenta con un instalador fcil de usar en su plataforma. Para esos casos se comienza con la distribucin fuente dada por el autor o quien la mantiene. La instalacin a partir de la distribucin fuente no resulta difcil, siempre y cuando los mdulos se encuentran empaquetados en forma estndar. Este documento se basa en la construccin e instalacin de mdulos a partir de fuentes de distribucin estndar.

1.2

El nuevo estndar: Distutils

Si en alguna oportunidad usted baja una distribucin de mdulo fuente, rpidamente puede notar si fue empaquetada y distribuida en forma estndar, por ejemplo utilizando Distutils. Primero, El nombre del archivo que piensa bajarcontiene en forma relevante el nombre de distribucin y el nmero de la versin, por ejemplo. foo-1.0.tar.gz o widget-0.9.7.zip. Seguidamente el archivo se descomprimir a un directorio del mismo nombre: foo-1.0 o widget0.9.7. Adems, la distribucin tendr un guion de inicializacin o setup setup.py y un archivo README.txt (o README), el cual explica como el proceso de creacin y construccin para la distribucin de mdulos consta simplemente de la ejecucin de:
python setup.py install

De ser cierto todo lo anterior, ya puede construir e instalar los mdulos que se ha bajado: basta con ejecutar la orden 2 1 Introduccin

anterior. A menos que necesite efectuar una instalacin no estndar o personalizar el proceso de construccin, no necesita saber ms que la orden mostrada anteriormente. Mejor dicho, lo que necesita saber de este manual para ese tipo de distribucin de mdulos es la orden anterior.

1.3

La manera tradicional: No estndar

Antes de la existencia de Distutils, no haba infraestructura para el soporte de la instalacin de mdulos generados por terceros en una forma consistente y estandarizada. Es por esto que no es factible escribir un manual general para la instalacin de mdulos de Python que no utilicen Distutils y la nica manera posible de instalar dichos mdulos es Leyendo las instrucciones de instalacin propias del mdulo. Cabe destacar que an si estas instrucciones de instalacin existen, en su mayora estn orientadas para usuarios expertos o en muchos casos resultan inadecuadas. En el caso de los usuarios experimentados estos estn sucientemente familiarizados con la librera de Python y como est organizada en su respectiva plataforma, as mismo son capaces de determinar donde guardar los archivos para que Python los reconozca y pueda utilizarlos. Este documento no asume tal premisa de estar dirigido a usuarios experimentados, por lo contrario pretende explicar como se encuentra estructurada la librera de Python en las tres plataformas mas utilizadas (Unix, Windows y Mac OS) y as entender como funciona Distutils y saber como instalar los mdulos manualmente cuando el autor del mdulo no proporcione el guion de instalacin o setup En adicin a esto cabe destacar que aunque no exista un mecanismo estndar de instalacin Python siempre ha contado con una maquinaria estndar para la construccin de extensiones bajo Unix, esto a partir de la versin **version?**. Esta maquinaria (el archivo Make.pre.in es reemplazado por el uso de Distutils, sin embargo permanecer en la distribucin de mdulos por algn tiempo. El mecanismo utilizando Makele.pre.in esta documentado en el manual de Extending & Embedding Python, pero dicho manual est dirigido a desarrolladores de mdulos y aqu solo presentamos documentacin para constructores e instaladores. El material adicional pre Distutils se encuentra en la seccin ??.

Construccin e instalacin estndar

Tal y como se describi en la seccin 1.2, la construccin e instalacin de una distribucin de mdulo utilizando Distutils se efecta simplemente al ejecutar el comando:
python setup.py install

En Unix, este comando se ejecuta desde el intrprete de rdenes; bajo Windows, se tiene que ejecutar desde una consola en DOS (DOS box) y este proceso es un poco mas complicado desde Mac OS, como se muestra a continuacin:

2.1

Variaciones en las plataformas

El comando de inicializacin o setup debe ser ejecutado desde el directorio raz de la instalacin, por ejemplo, el subdirectorio principal donde la fuente del mdulo se descomprime. Por ejemplo, si se ha bajado un fuente de distribucin de mdulo foo-1.0.tar.gz en un sistema Unix, el proceso normal siguiente es:
gunzip -c foo-1.0.tar.gz | tar xf cd foo-1.0 python setup.py install # Se descomprime en el directorio foo-1.0

Bajo Windows, seguramente se habr bajado foo-1.0.zip. Si se ha bajado el archivo a C:\Temp, Entonces se descomprimir en C:\Temp\foo-1.0; se puede utilizar el manipulador de archivos con GUI (por ejemplo Winzip) o alguna

1.3 La manera tradicional: No estndar

utilidad bajo linea de comando tales como (unzip o pkunzip) para descomprimir el archivo. Luego se procede a abrir una consola bajo DOS (DOS box) y se ejecuta:
cd c:\Temp\foo-1.0 python setup.py install

Bajo Mac OS, se tiene que efectuar un trabajo adicional para suplir los argumentos de la lnea de comando para el guion de inicializacin o setup: Haga clic doble en el icono del guion (o seleccione el icono y arrastre hasta el icono del interprete Python) Presione el botn Seleccione linea de comandos al estilo Unix (Select command line Unix-style) Seleccione Mantener la ventana stdio activa luego de la culminacin del proceso (Keep stdio window open on termination) si se esta interesado en vericar el resultado del guion de inicializacin o setup (usualmente voluminoso pero bastante ilustrativo) voluminous and often useful) cuando aparezca la ventana de dilogo con la lnea de comando, introduzca install (Puede utilizar cualquier lnea de comando Distutils que se describe en este documento o en el documento Distribucin de Mdulos en Python: solo mantenga inmutable el archivo inicial python setup.py y no tendr ningn problema) **Esto debe cambiar: cada inicializacin o setup Distutils necesitar los argumentos de lnea de comando para cada ejecucin (y mantener stdout), para as permitir que todo opere en forma automtica para el guion de inicializacin o setup**.

2.2

Dividiendo el trabajo

La ejecucin de setup.py install construye e instala todos los mdulos en una sola operacin. Si se preere trabajar en forma incremental til especialmente cuando se quiere personalizar el proceso de construccin o si las cosas por una u otra razn no estn saliendo como es debido, se puede hacer que el guion procese un paso a la vez. Esto es particularmente til cuando la construccin e instalacin va a ser efectuada por varios usuarios distintos por ejemplo, se puede requerir la construccin de un mdulo de distribucin y luego drselo al administrador del sistema para la instalacin (o hacerlo usted mismo utilizando privilegios de superusuario). Por ejemplo, se puede construir todo al mismo tiempo y posteriormente efectuar la instalacin en un segundo paso, invocando el guion dos veces.
python setup.py build python setup.py install

(Si hace esto, notar que al ejecutar el comando install primero se ejecutar el comando build que a su vez no tendr nada que hacer ya que todo el directorio build ha sido previamente actualizado). Tal vez no necesite esta posibilidad de separar la construccin e instalacin en distintos pasos si se trata de instalar y construir mdulos bajados de la red, pero es una gran ventaja al momento de efectuar tareas ms especializadas. Si se piensa en distribuir mdulos y extensiones propias en Python podr ejecutar multitud de comandos Distutils individualmente.

2.3

Funcionamiento de la construccin

Como se describi anteriormente el comando build es el responsable de situar los archivos a instalar en el directorio build. Por defecto, este directorio es build bajo la raz de distribucin; Si su preocupacin se reere a la velocidad o quiere mantener pristina su rbol fuente, se puede cambiar el directorio de construccin mediante la opcin --buildbase. Por ejemplo: 4 2 Construccin e instalacin estndar

python setup.py build --build-base=/tmp/pybuild/foo-1.0

(O se podra dejar en forma permanente utilizando una directiva en su sistema operativo o en el archivo de conguracin de Distutils; ver la seccin 6.) Usualmente nada de esto es necesario. La estructura del rbol de distribucin para la construccin se presenta a continuacin:
--- build/ --- lib/ o --- build/ --- lib.<plat>/ temp.<plat>/

donde <plat> se expande y muestra una breve descripcin de la actual plataforma de hardware y sistema operativo. La primera forma utilizando solo el directorio lib, es para distribucin pura de mdulos, esto signica distribucin de mdulos puros de Python. Si el mdulo a distribuir contiene alguna extensin (mdulo escrito en C/C++, o Java para JPython) entonces debe utilizarse la segunda forma de dos directorios <plat>. En ese caso el directorio, temp.plat contiene los archivos temporales generados por el proceso de compilacin/enlace y que generalmente no se instalan. En cualquier caso los directorios lib o lib.plat contiene todos los mdulos de Python (Python puro y sus extensiones) que se instalarn. En el futuro se aadirn directorios adicionales a los guions de Python, a la documentacin, ejecutables binarios y lo que se necesite para efectuar la labor de instalar los mdulos y las aplicaciones de Python.

2.4

Funcionamiento de la instalacin

Luego de la ejecucin del comando build (ejecutado o bien explcitamente o a travs del comando install), la tarea del comando install es relativamente simple: copiar todo bajo build/lib (o build/lib.plat ) al directorio escogido para la instalacin. Si no se selecciona un directorio de instalacin, por ejemplo si se ejecuta setup.py install el comando install instala en el lugar estndar para los mdulos generados por terceros. Este directorio vara de acuerdo a la plataforma y dependiendo de la construccin e instalacin de Python. Bajo Unix y Mac OS depende si los mdulos de distribucin son puros o contienen extensiones (no puras): Platform Unix (pure) Unix (non-pure) Windows Mac OS (pure) Mac OS (non-pure) Notas: (1) La mayora de las distribuciones de Linux incluyen Python como parte del sistema en forma estndar, por ende prex y exec-prex siempre estn en /usr bajo Linux. Si se genera Python a modo propio bajo Linux (o en cualquier sistema Linux), por defecto tanto prex y exec-prex estn en /usr/local. (2) El directorio de instalacion por defecto bajo Windows era C:\Archivos de Programa\Python en las versiones Python 1.6a1, 1.5.2 y anteriores.
prex y exec-prex corresponden a los directorios donde Python est instalado y donde encuentra los binarios a

Standard installation location


prex/lib/python2.0/site-packages exec-prex/lib/python2.0/site-packages prex prex:Lib prex :Mac:PlugIns

Default value
/usr/local/lib/python2.0/site-packages /usr/local/lib/python2.0/site-packages C:\Python Python:Lib **???** Python:Mac:PlugIns**???**

Notes (1) (1) (2)

momento de ejecucin. Estos directorios son siempre los mismos bajo Windows y Mac OS y en muchas ocasiones bajo Unix. Se puede determinar los valores utilizados por prex y exec-prex mediante la ejecucin de Python en modo 2.4 Funcionamiento de la instalacin 5

interactivo e ingresando unos pocos comandos, por ejemplo bajo Unix: ingrese python en la lnea de comandos, bajo Windows: Python 2.0 (interpreter) **right?**; bajo Mac OS, **???**. Una vez que el interpretador ha iniciado, se ingresa el cdigo Python en la lnea de comando > . Por ejemplo en mi sistema Linux, ingreso las tres sentencias Python, que se muestran a continuacin, y el consiguiente resultado.Para determinar el valor de prex y exec-prex :
Python 1.5.2 (#1, Apr 18 1999, 16:03:16) [GCC pgcc-2.91.60 19981201 (egcs-1.1.1 Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam >>> import sys >>> sys.prefix /usr >>> sys.exec_prefix /usr on linux2

Si no se quiere instalar en el directorio estndar o si no se tiene privilegios para escribir all, necesitar leer la siguiente seccin sobre instalaciones en directorios alternos.

Construyendo extensiones: Consejos y Recomendaciones

Esta seccin es recomendada para aquellos interesados en efectuar cualquier tipo de construccin, entre otras cosas se abordarn los siguientes temas: El archivo Setup (Orientada a cualquier plataforma, pero doblemente a Unix) CFLAGS y LDFLAGS (Debern implementarse primero) Utilizando compiladores distintos a MS bajo Windows (como convertir la libreria Python)

3.1 3.2

Combinando los parmetros del compilador/enlazador (compiler/linker) Utilizando compiladores destindos de Microsoft bajo Windows

**Se podria referenciar: http://www.cyberus.ca/ g_will/pyExtenDL.shtml**

Instalacin Alternativa

A menudo, es necesario o deseable el instalar mdulos en directorios distintos a los directorios estndar dsiponibles para mdulos de Python generados por terceros. Por ejemplo, tal vez no se cuente con permiso de escritura al directorio disponible para la instalacin de mdulos generados por terceros bajo un sistema Unix. O tal vez desee probar un mdulo antes de convertirlo en parte de su instalacin local de Python. Esto es an mas explicable en el hecho de necesitar una actualizacin de la distribucin presente: Se desea que los actuales guiones continuen operando en la nueva version antes de que la actualizacin ocurra. El comando Distutils install esta designado para efectuar instalaciones de mdulos de distribucin en directorios alternos, de una manera sencilla y sin complicaciones. La idea bsica consiste en proporcionar el directorio base para la instalacin. El comando install selecciona el set de directorios (o esquema de instalacin) donde se instalarn los archivos. Los detalles de dicha instalacin dieren entre las distintas plataformas. Por esto se recomienda leer la seccin que corresponde a su respectiva plataforma.

4.1
6

Instalacin Alternativa: Unix (Esquema home)


4 Instalacin Alternativa

Bajo Unix, hay dos maneras de realizar instalaciones alternativas bajo Unix, el esquema de prejo, similar a la manera como la instalacin alternativa funciona bajo Windows y Mac OS. Sin embargo, esta no es la mas til cuando se intenta mantener una libreria personal de Pyhton. Por esta razn comenzaremos a documentar el esquema home. La idea principal del esquema home es de construir y mantener una serie de mdulos de Python, bajo el directorio home. Instalar un nuevo mdulo es tan simple como
python setup.py install --home=<dir>

donde se suple el directorio deseado para la opcin --home. a quienes no les gusta teclear mucho pueden escribir (~); El comando install expande su directorio home:
python setup.py install --home=~

La opcin --home dene la instalacin en el directorio base. Los archivos se instalan en los siguientes directorios (bajo el directorio base): Tipo de archivo distribucin pura de mdulo distribucin de mdulo (no pura) scripts data Directorio de Instalacin
home/lib/python home/lib/python home/bin home/share

opcion Override --install-purelib --install-platlib --install-scripts --install-data

4.2

Instalacin Alternativa: Unix (El esquema de prejo)

El Esquema de prejo se utiliza cuando se desea utilizar una instalacin de Pyhton para realizar la construccin/instalacin (por ejemplo, ejecutar el guion de instalacin o setup), pero la instalacin de los mdulos en el directorio de instalacin para mdulos generados por terceros, en un directorio distinto del de la instalacin de Python (o que luzca diferente a un directorio de instalacin de Pyhton). Si esto le parece un tanto inusual, es por que realmente lo es, por esa razn el esquema home siempre va de primero. Sin embargo, hay al menos dos casos conocidos donde el esquema de prejo 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 mdulos de Python a partir de una distribucin, 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 diere del nombre para lectura, por ejemplo, el interpretador de Python accesado en /usr/local/bin/python buscara los mdulos en /usr/local/lib/python1.X , pero estos mdulos 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 opcin --prex dene la instalacin base especca para cada plataforma, utilizada por archivos especcos de cada plataforma. (En la actualidad esto implica aquellas distribuciones de mdulos no puras, pero se puede expandir a librerias de C, ejecutables binarios,etc.) Si no se asigna --exec-prex, se toma por defecto a --prex. Los archivos se instalan como sigue: 4.2 Instalacin Alternativa: Unix (El esquema de prejo) 7

Tipo de archivo distribucin pura de mdulo distribucin de mdulo (no pura) scripts data

Directorio de Instalacin
prex/lib/python1.X /site-packages exec-prex/lib/python1.X /site-packages prex/bin prex/share

opcion Override --install-purelib --install-platlib --install-scripts --install-data

No hay ningn requerimiento para que --prex o --exec-prex apunten a una instalacin alterna de Python. Si los mencionados directorios no existen, estos so creados al momento de la instalacin. Incidentalmente la verdadera razn de la importancia del esquemo de prejo es que las instalaciones estndar bajo Unix utilizan dicho esquema pero con --prex y --exec-prex 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 prejo, 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 instalacin alterna de Python no causa ningn 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 construccin y que ambos interpretadores son de la misma version de Python (posiblemente diferentes construcciones o posiblemente copias de la misma construccin). (por supuesto, si su --prex y --exec-prex ni siquiera apuntan a una instalacin alterna de Pyhton, esto es totalmente irrelevante.)

4.3

Instalacin Alternativa: Windows

Dado que Windows no tiene ninguna concepcin de directorio homedel usuario, y ya que la instalacin estndar bajo Windows es mucho mas simple que bajo Unix, no hay razn para tener separados a las opciones --prex y a --home. Solo permita que la opcin --prex especique al directorio base, por ejemplo:
python setup.py install --prefix="\Temp\Python"

para instalar los mdulos al directorio de archivos \Temp en la unidad actual disponible. La instalacin esta denida por la opcin --prex; La opcin --exec-prex no tiene soporte bajo Windows. Los archivos se instalan como sigue: Tipo de archivo distribucin pura de mdulo distribucin de mdulo (no pura) scripts data Directorio de Instalacin
prex prex prex\Scripts prex\Data

opcion Override --install-purelib --install-platlib --install-scripts --install-data

4.4

Instalacin Alternativa: Mac OS

Similar a Windows, Mac OS no tiene directorio de usuarios home (o usuarios) y una instalacin estmdar muy sencilla. En consecuencia, solo la opcin --prex es necesaria. Esta dene la instalacin base bajo las siguientes premisas: Tipo de archivo distribucin pura de mdulo distribucin de mdulo (no pura) scripts data 8 Directorio de Instalacin
prex:Lib:site-packages prex:Lib:site-packages prex:Scripts prex:Data

opcion Override --install-purelib --install-platlib --install-scripts --install-data 4 Instalacin Alternativa

Revise la seccin 2.1 para mayor informacin en referencia a proveer argumentos en la lnea de comandos al guion de inicio con MacPython.

Instalacin Personalizada

Muchas veces, los esquemas de instalacin alternativos descritos en la seccin 4 no hacen lo que se les ha pedido. A lo mejor le gustara manipular uno o dos directorios, mientras mantiene a todo bajo el mismo directorio base, o tambien podra redenir el mismo esquema de instalacin. En cualquier caso, estar creando un esquema de instalacin personalizada. Habr notado la columna de opciones a suplantar (override options) en las tablas descritas en los anteriores esquemas de instalacin. Estas opciones constituyen como usted dene un esquema de instalacin personalizada. Estas opciones a suprimir pueden ser relativas, absolutas o denidas explicitamente en alguno de los directorios de instalacin base. (Hay dos directorios de instalacin base, normalmente son los mismos y slo dieren al utilizar el esquema de prejo de Unix y dados las opciones --prex y --exec-prex ambas diferentes.) Por ejemplo, cuando se est instalando una distribucin de mdulos en su directorio home bajo Unix, pero desea que los guiones estn en ~/scripts en vez de ~/bin. Como se podra esperar se puede suplantar este directorio con la opcin --install-scripts; en este caso, tiene ms sentido proveer una ruta relativa, interpretada como relativa al directorio de instalacin base (en este caso su directorio home):
python setup.py install --home=~ --install-scripts=scripts

Otro ejemplo bajo Unix: Suponga que su instalacin de Python fu construida con un prejo de /usr/local/python, Entonces bajo una instalacin estndar, los guiones terminan en /usr/local/python/bin. Si los desea en /usr/local/bin,debe suministrar el directorio absoluto para la opcin --install-scripts:
python setup.py install --install-scripts=/usr/local/bin

Esto realiza una intalacin utilizando el esquema de prejo donde el prejo 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 mdulos generados por terceros se ubiquen en un subdirectorio prex , en ves de prex . Esto resulta tan facl como la personalizacin del directorio de instalacin de los guiones de inicio o setup, slo tiene que recordar que hay dos tipos de mdulos por los que preocuparse, mdulos puros y no puros (por ejemplo: modulos de uns distribucin no pura). Por ejemplo:
python setup.py install --install-purelib=Site --install-platlib=Site

Los directorios de instalacin especicado estan relativos a prex . Por supuesto, usted debe asegurarse que esos directorios estn en la ruta de bsqueda para los mdulos de Python, por ejemplo colocando un archivo .pth en prex . Si quiere denir un esquema completo de instalacin, debe suplir todas las opciones de los directorios de instalacin. La manera recomendada es la de suplir las rutas relativas; por ejemplo, si desea mantener todos los archivos relacionados a mdulos Python en python e su directorio home, y desea un directorio por separado para cada plataforma que utilice su directorio home, debera denir el siguiente esquema de instalacin:

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 accin de Distutils al referenciar las opciones de lnea de comandos (como cuando se referencia los archivos de conguracin). Obviamente, el especicar el esquema de instalacin cada vez que instala una nueva distribucin de un mdulo resulta tedioso. Para evitarlo, pueden incluirse estas opciones en en su archivo de conguracin de Distutils (revise la seccin 6):
[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 instalacin base al ejecutarse el guion de inicio. Por ejemplo,
python setup.py --install-base=/tmp

Esto instalar mdulos 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 instalacin base de /tmp/python). Probablemente habr notado el uso de $HOME y $PLAT en el archivo de conguracin de ejemplo. stas son conguraciones de las variables de Distutils, sumamente similares a las variables de entorno. De hecho, se puede utilizar variables de entorno en los archivos cong en aquellas plataformas que sostienen dicha nocin pero las variables de Distutils denen 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 conguracin suministradas por Distutils en sistemas que no cuenten con variables de sistemas como resulta en Mac OS (**cierto?**).) reerase a la seccin 6 para ms detallas.

10

Instalacin Personalizada

**si necesita ejemplos en Windows and Mac OS cuando los esquemas de instlacin personalizados son necesarios en esas plataformas?**

6 7
7.1 7.2

Archivos de Conguracin de Distutils Convenciones Pre-Distutils


el archivo Makele.pre.in Instalacin manual de mdulos

11