¿Es posible desarrollar el código de un subpaquete en un directorio totalmente independiente?
Chema Cortés
py en ch3m4.org
Jue Nov 25 10:18:53 CET 2004
El Miércoles, 24 de Noviembre de 2004 17:20, Jose escribió:
> Imaginaos que tengo la siguiente estructura de directorios:
>
> /dir1/
> /paqueteA/
> __init__.py
> paquete1/
> __init__.py
> modulo1.py
> paquete2/
> __init__.py
> modulo2.py
> /dir2/
> /paqueteA/
> __init__.py
> paquete3/
> __init__.py
> modulo3.py
>
> He probado definiendo PYTHONPATH así, pero no funciona:
> export PYTHONPATH=/dir1:/dir2
>
> Creo recordar que Python va asociando nombres de dominio con directorios
> y, cada vez que lo precisa, realiza una búsqueda por la lista
> resultante. ¿Sabéis de alguna forma de engañar a este proceso o de
> alguna otra alternativa?
A partir del python 2.3 tienes el módulo 'pkgutil' que sirve para lo que
necesitas. En el __init__.py de los dos paquetes 'paqueteA' pones lo
siguiente:
from pkgutil import extend_path
__path__=extend_path(__path__,__name__)
Luego, tan sólo debes manipular el sys.path como es costumbre (con sys.path ó
a través del PYTHONPATH).
Tal como lo tienes hecho, cuando...
from paqueteA import paquete3
...primero mira en dir1/paqueteA y como ve que allí no está se irá al
dir2/paqueteA
> ¿Es posible que desde 'modulo2.py' pueda importar objetos de
> paqueteA.paquete1.modulo1 y de paqueteA.paquete3.modulo3?.
No hay problema ya que ambos paquetes están relacionados "lógicamente" a
través de su padre común.
------------ 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/20041125/a861a58a/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