[pyar] sobre import en paquetes al mismo nivel
Joaquín Sorianello
listas en joac.com.ar
Jue Jun 6 17:38:18 ART 2013
2013/6/6 Joaquín Sorianello <listas en joac.com.ar>
>
>
>
> 2013/6/6 anthony <asotolongo en uci.cu>
>
>> Hola Colegas les escribo para hacerles una pregunta sobre carga de
>> paquetes con import
>>
>> tengo dos directorios que son paquetes con su respectivo __init__.py y
>> están al mismo nivel ambos.
>>
>> ejemplo:
>> proyecto
>> paquete1
>> paquete2
>>
>> tengo una clase dentro de paquete1 que necesita de una función o clase en
>> paquete2
>>
>> #clase que esta dentro de paquete1
>> import paquete2.algo
>>
>> class clase1():
>> def __init__(self):
>> self.datos=algo()
>>
>>
>>
>> #paquete2
>> def algo()
>> print 'hola'
>>
>>
>> el tema es que me dice que el siguiente error
>>
>> import paquete2.algo
>> ImportError: No module named algo
>>
>>
>> entiendo el error, lo que no se es como resolver el tema... , es decir
>> como llamar una función o clase desde un paquete que están al mismo nivel
>>
>>
> Yo me leeria: http://www.python.org/dev/peps/pep-0328/ que habla
> justamente de eso:
>
> en mi ejemplo me armé:
>
> ☁ imports tree
> .
> |-- paquete
> | |-- bar
> | | `-- __init__.py
> | |-- foo
> | | `-- __init__.py
> | `-- __init__.py
> `-- test.py
>
>
> ☁ imports cat test.py
> from paquete import foo
>
> print "Esto fue un ejemplo"
> ☁ imports cat paquete/foo/__init__.py
> from ..bar import saludo
>
> print saludo()
> ☁ imports cat paquete/bar/__init__.py
>
> def saludo():
> return "Soy el modulo bar"
>
> El __init__.py dentro de paquete esta vacío, es para que sea un módulo
>
> Es importante tener en cuenta que si los submodulos no están dentro de un
> paquete, los imports relativos se rompen...
>
> Saludos!
>
Faltó la ejecución:
☁ imports python2 test.py
Soy el modulo bar
Esto fue un ejemplo
Si no estan dentro de un package, el error es de esta pinta:
☁ imports python2 test.py
Traceback (most recent call last):
File "test.py", line 1, in <module>
import foo
File "/home/joac/ReposFun/imports/foo/__init__.py", line 1, in <module>
from ..bar import saludo
ValueError: Attempted relative import beyond toplevel package
--
Joaquín Sorianello
A.K.A. Joac
@_joac
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130606/45fed8aa/attachment.html>
More information about the pyar
mailing list