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

Chema Cortes pych3m4 en gmail.com
Lun Dic 14 07:46:29 EST 2015


El vie., 11 dic. 2015 a las 17:46, Jose Caballero (<jcaballero.hep en gmail.com>)
escribió:

> 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
>
>
Lo que no entiendo qué problema hay para no usar imp.load_source()

if cond12:
    foo = imp.load_source("foo", "/..../package/api/v1_2/foo.py")
elif conf11:
    foo = imp.load_source("foo", "/..../package/api/v1_1/foo.py")
else:
    foo = imp.load_source("foo", "/..../package/api/v1_0/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/
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
-- 
Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
http://ch3m4.org/blog
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20151214/ac405f82/attachment.html>


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