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

Jose Caballero jcaballero.hep en gmail.com
Vie Dic 11 11:46:35 EST 2015


acabo de comprobar que tampoco se puede hacer un import normal

     from 1.2 import foo

Mmmm. Tal vez tenga que cambiar los paths a algo como

     /..../package/api/v1_0/foo.py
     /..../package/api/v1_1/foo.py
     /..../package/api/v1_2/foo.py



El día 11 de diciembre de 2015, 11:42, Sergio Fernández
<sergio en wikier.org> escribió:
> 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
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/


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