[Python-es] Problema con import

Ark cloudneozero en gmail.com
Jue Mayo 6 06:36:45 CEST 2010


Hola.
En un principio diría que sería una buena idea rediseñar estos
módulos, y la forma en que se relacionan entre ellos,removiendo esa
dependencia cíclica.  Ahora, si no es posible, o sencillo, pues, al no
tener el código, no puedo decir específicamente, pero en algunos casos
en los que he tenido este problema he tratado de incluír los imports
dentro de los métodos que los requieren.

En tu caso, en el módulo Utilidades, en lugar de tener el  from
MatematicaBraille import Traductor al principio del módulo, que hace
que cada vez que se importe se ejecute, lo tendría dentro del método o
métodos que hacen uso de la clase Traductor, algo como.

Utilidades.py

class Util(object):
  def creador_de_traductores(self):
     from MatematicaBraille import Traductor
     nuevo_traductor = Traductor()

No se si hacer esto solucione tu problema, pero lo he hecho en algunos
casos.  El problema esta en el hecho de que Python es interpretado,
por lo tanto, traductor se esta creando en ese momento, y al meterlo
dentro del método, solo se requerirá cuando se ejecute el método como
tal.

Espero que te sea de utilidad.

ark

2010/5/5 Andreina Mejia <andreinamejia en gmail.com>:
> Hola a todos! espero estén bien...
>
> Mi problema es el siguiente, tengo los siguientes archivos:
> - MatematicaBraille.py: contiene la clase Traductor
> - CastellanoBraille.py: contiene la clase Castellano
> - Utilidades.py: contiene la clase Util
> - ElegirTraduccion.py
>
> En MatematicaBraille.py y CastellanoBraille.py uso métodos que se encuentran
> en Utilidades.py, por lo que en ambos archivos hago: from Utilidades import
> Util.
>
> En Utilidades.py uso las clases Traductor y Castellano, por lo que hago:
> from MatematicaBraille import Traductor
> from CastellanoBraille import Castellano
>
> En ElegirTraduccion.py también uso las clases Traductor y Castellano, por lo
> que hago:
> from MatematicaBraille import Traductor
> from CastellanoBraille import Castellano
>
> Pero cuando corro ElegirTraduccion.py me da este error:
>
> Traceback (most recent call last):
>   File "ElegirTraduccion.py", line 7, in <module>
>     from MatematicaBraille import Traductor
>   File "/home/andreina/Escritorio/bin/MatematicaBraille.py", line 9, in
> <module>
>     from Utilidades import Util
>   File "/home/andreina/Escritorio/bin/Utilidades.py", line 7, in <module>
>     from MatematicaBraille import Traductor
> ImportError: cannot import name Traductor
>
> Cómo puedo resolver este problema de llamadas cíclicas?
>
> Muchas gracias de antemano!
>
>
>
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://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