[Python-es] __import__( ) cuando el "package" incluye un punto .

Sergio Fernández sergio en wikier.org
Vie Dic 11 11:42:26 EST 2015


Jamás se debe usar módulos con puntos!

La convención viene de PEP8:
https://www.python.org/dev/peps/pep-0008/#package-and-module-names

La razón es que en Python 2.4 se introduj el PEP328 con soporte para
los imports locales: https://www.python.org/dev/peps/pep-0328/

Y por tanto utilizar punto entra en conflicto con esa caracteristica.


2015-12-11 17:36 GMT+01:00 Jose Caballero <jcaballero.hep en gmail.com>:
> Hola,
>
>
> necesito hacer import de una serie de modulos, pero solo se sabe el
> path exacto en "run time".
> Trabajo con "legacy code" que hace el import de estos modulos con __import__( )
>
> Pero ahora los paths incluyen en punto, de esta forma
>
>         /...../package/api/1.0/foo.py
>         /...../package/api/1.1/foo.py
>         /...../package/api/1.2/foo.py
>
> Y al pasar "api.1.2.foo" como primer argumento a __import__( ), se hace un lio.
>
> Alguien tiene algun link donde explique como solventar esta silucion
> con __import__( ) ?
> NOTE: me interesa __import__( ), no imp( ), ni importlib, etc.
>
>
> Gracias por adelantado.
> Un saludo,
> Jose
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/



-- 
Sergio Fernández
http://www.wikier.org


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