J'utilise Django 1.3.0 avec Python 2.7.1. Dans tous les tests que j'écris les importations suivantes je reçois le ImportError ci-dessus:ImportError: impossible d'importer les signaux de nom
from django.utils import unittest from django.test.client import Client
La trace complète de la pile:
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.
Toutes les idées pourquoi ce qui se passe?
J'ai lu cette [question] (http://stackoverflow.com/questions/4707111/importerror-cannot-import-name-modulea), est-ce parce que ** Client ** est importé deux fois? une fois dans C: \ Python27 \ lib \ paquets-de-site \ django \ test \ __ init __. py' et encore dans mon test 'C:/Users/benjamin/espace de travail/BookIt/src/BookIt/tests \ basic_flow.py'. Si c'est le cas, alors comment importer le ** Client ** à mon test? –
Cela importerait seulement si l'importation du client crée une importation circulaire, c'est-à-dire que file_A importe le fichier_B et file_B importe le fichier_A. Peu importe si les importations ne sont pas complètes. Python doit toujours analyser le module pour extraire les éléments individuels. Parfois, des importations circulaires sont nécessaires, donc si c'est votre cas, vous pouvez envelopper les importations en conflit dans un bloc 'try', en utilisant' ImportError' comme exception. –
J'ai rencontré ce problème quand, à partir d'un shell python, j'ai essayé d'importer pour importer mes modèles django. Il a échoué (en raison de l'absence de jeu de paramètres), j'ai géré cela, puis j'ai essayé de les importer à nouveau, et j'ai eu cette erreur. D'une manière ou d'une autre, ce processus a rendu mon espace de noms de module dans un état sale, mais @ BenjaminK. Pensait que quelque chose était importé deux fois m'a fait réaliser que cela se passait. –