¿Es posible desarrollar el código de un subpaquete en un directorio totalmente independiente?

Chema Cortés py en ch3m4.org
Vie Nov 26 14:34:59 CET 2004


El Jueves, 25 de Noviembre de 2004 17:08, Jose escribió:

> Gracias Chema (y a los demás), es justo lo que necesitaba.

No hay de qué. ;-)


He estado pensando un poco más en el tema, y he visto nuevas posibilidades:

- Suplantar módulos
- Crear metapaquetes
- Mantener un repositorio de paquetes


Imaginad que tenemos el paquete PQT instalado en /usr/lib/python/site-packages 
(puede ser un paquete estándar) y que queremos añadir/modificar algunas 
funcionalidades (pe: pasar a extensiones C ó pyrex). En nuestro directorio de 
trabajo creamos un paquete "virtual" con el mismo nombre, y nos aseguramos 
que en PQT/__init__.py están estas dos líneas 

  from pkgutil import extend_path
  __path__=extend_path(__path__,__name__)


Estas líneas modifican el PQT.__path__, que es la secuencia de las rutas donde 
se buscan los módulos del paquete. El 'extend_path' busca estas rutas en el 
sys.path, por lo que nuestro directorio local figurará en el primer lugar del 
PQT.__path__. De este modo, los módulos del paquete "virtual" suplantan los 
del paquete estándar, y todo ésto sin necesidad de modicar ni el PYTHONPATH 
ni el sys.path.

Aún se puede hilar más fino y crear un fichero 'PQT.pkg' junto al paquete 
"virtual" (o en cualquier lugar del sys.path). Este fichero debe contener una 
ruta por línea que serán añadidas al __path__ del paquete. De esta manera es 
factible dispersar un paquete por diferentes directorios.

Con la misma técnica se puede crear un "metapaquete". Bastaría con poner en el 
fichero .pkg los directorios donde se encuentran los módulos de otros 
paquetes que conformarán el metapaquete.

Y ya puestos, ¿por qué no poner en el fichero .pkg rutas a volúmenes de red? 
De esta manera se tendría un repositorio centralizado con las modificaciones 
menores de los paquetes, quedando el grueso del paquete instalado en modo 
local para reducir la carga de red.

------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: application/pgp-signature
Size: 189 bytes
Desc: no disponible
URL: <http://mail.python.org/pipermail/python-es/attachments/20041126/d3df643d/attachment.pgp>
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es