Estoy usando Django 1.3.0 con Python 2.7.1. En todas las pruebas que escribo las siguientes importaciones tengo la ImportError arriba:ImportError: no se pueden importar las señales de nombre
from django.utils import unittest from django.test.client import Client
La traza completa:
File "C:\Program Files (x86)\j2ee\plugins\org.python.pydev.debug_1.6.3.2010100513\pysrc\runfiles.py", line 342, in __get_module_from_str mod = __import__(modname) File "C:/Users/benjamin/workspace/BookIt/src/BookIt/tests\basic_flow.py", line 11, in from django.test.client import Client File "C:\Python27\lib\site-packages\django\test\__init__.py", line 5, in from django.test.client import Client, RequestFactory File "C:\Python27\lib\site-packages\django\test\client.py", line 21, in from django.test import signals ImportError: cannot import name signals ERROR: Module: basic_flow could not be imported.
Cualquier idea por qué sucede esto?
He leído esta [pregunta] (http://stackoverflow.com/questions/4707111/importerror-cannot-import-name-modulea), ¿podría ser porque ** Client ** se importó dos veces? una vez en 'C: \ Python27 \ lib \ site-packages \ django \ test \ __ init __. py' y nuevamente en mi prueba' C:/Users/benjamin/workspace/BookIt/src/BookIt/tests \ basic_flow.py'. Si esto es todo, ¿cómo puedo importar el ** Cliente ** a mi prueba? –
Solo importaría si el Cliente importador crea una importación circular, es decir, el archivo_A importa el archivo_B y el archivo_B importa el archivo_A. No importa si las importaciones no están llenas. Python aún debe analizar el módulo para extraer los elementos individuales. A veces, las importaciones circulares son necesarias, así que si ese es tu caso, puedes envolver las importaciones en conflicto en un bloque 'try', usando' ImportError' como tu excepción. –
Encontré este problema cuando, desde un shell de Python, traté de importar para importar mis modelos django. Falló (debido a que no había ningún conjunto de módulos de configuración), lo manejé y traté de importarlos nuevamente, y obtuve este error. De alguna manera, este proceso puso mi espacio de nombres de módulo en un estado sucio, pero @ BenjaminK. Pensó que algo se importaba dos veces me hizo darme cuenta de que esto estaba sucediendo. –