[Python-es] Importar módulos mediante un fichero __init__.py
Sergio Fernández
sergio en wikier.org
Mie Mayo 9 17:51:04 CEST 2012
Perfecto, Dani, casi siempre hay varias soluciones para todo.
Solo un detalle: lo que apuntas d eimportar cosas en los __init__.py,
suele hacerse para abreviar rutas de importacion.
Suponiendo 'mimodulo' asi:
mimodulo
__init__.py
submodulo
__init__.py
foo.py
Si los __init__.py estuviera vacios, un usuario de ese modulo deberia
utilizar algo como:
from mimodulo.submodulo import foo
A menudo, para simplificar o para que detalles de organizacion interna
de una biblioteca no trascienan a los usuario, se pone imports en los
__init__.py
Por ejemplo, si en el primer __init__.py pusiera esta linea de codigo:
from submodulo import foo
Un usuario podr'ia importar foo d ela siguiente manera:
from mimodulo import foo
Espero que te haya ayudado mas alla d ehaberte liado mas ;-)
Un saludo,
2012/5/9 Dani Muñoz <conan.srk en gmail.com>:
> Muchas gracias, chicos. Ya está solucionado. En primer lugar probé lo
> que me dijo Sergio Fernández, puse esas dos líneas de código al
> principio de mainf.py, pero al ejecutarlo no me reconocía las
> funciones que iban contenidas en él (como si no las hubiera definido,
> ni las hubiera importado de ningún sitio, nada), pero fijo que hice
> algo mal. Más tarde intenté el método de Juan José Gómez, ordenando
> los ficheros tal y como él ha hecho, importé todo en __init__.py y en
> mainf.py escribí "from tools import * " y así solucioné mi conflicto.
>
> Aun así no estoy satisfecho del todo, porque para solucionarlo creo
> que he dependido más de la manera de distribuir los ficheros (poniendo
> el archivo principal en la raíz, etc.), que de solo escribir el código
> adecuado en los scripts.
>
> Chema, la razón de utilizar __init__.py es solo la de aprender. Soy
> nuevo en esto de Python, y leyendo proyectos de código libre de otras
> personas escritos también en Python me había fijado en que en todas
> partes había un fichero __init__.py que solo importaba cosas y que
> aparentemente no hacía nada más, por eso quiero aprender bien su
> funcionamiento, porque el día que esté en condiciones de hacer mis
> propios programas seguro que también tendré que tener destreza en su
> manejo.
>
> Bueno, jeje, no me lío más. Muchas gracias otra vez a los tres :-)
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
--
Sergio Fernández <sergio en wikier.org>
Más información sobre la lista de distribución Python-es