[pyar] sobre import en paquetes al mismo nivel

Joaquín Sorianello listas en joac.com.ar
Jue Jun 6 17:34:19 ART 2013


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!
-- 
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/40060dce/attachment.html>


More information about the pyar mailing list