referenciar modulos de una estructura especifica

Chema Cortes py en ch3m4.org
Mar Nov 15 14:32:11 CET 2005


Milton Galo Patricio escribió:
> sigo con el mismo problema, alguien ha hecho esto con exito?, es
> realmente necesario alterar el path?, aca hablan de una variable
> __path__ que debe llevar el __init__.py, alguien ha utilizado esta
> opción?, gracias por la ayuda, salu2!

Creo que no has entendido bien lo que te pasa. El submódulo "GUI",
cuando lo ejecutas directamente (python GUI.py) no sabe dónde se
encuentra el paquete "Proyectos", aunque físicamente sea su contenedor.

Si piensas lanzar el submódulo "GUI" como programa principal, tienes que
colocar el paquete "Proyectos" en la ruta de búsqueda de paquetes. Si no
está, como así parece, en el site-packages, el submódulo tiene que
alterar el sys.path (directamente o a través de la variable de entorno
PYTHONPATH).

Si aún así no te parece bien, aún te quedaría la opción de crearte tu
propia función de importación (empleando el módulo 'imp'). Podrías
importar módulo desde cualquier sitio, sin tener que confiar en la ruta
de búsqueda.



En cuanto a la variable __path__ de los paquetes está pensada para el
caso de que estén formados por directorios dispersos por el disco duro.
Pero el problema sigue siendo el mismo, que la ejecución directa de un
submódulo no sabe encontrar el paquete principal.




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