ImportError:无法导入名称信号

时间:2011-05-12 19:06:10

标签: python django unit-testing importerror

我正在使用Django 1.3.0和Python 2.7.1。 在每个测试中,我编写以下导入,我得到上面的importError:

from django.utils import unittest
from django.test.client import Client

完整堆栈跟踪:

  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.

为什么会发生这种情况?

3 个答案:

答案 0 :(得分:5)

@Hugo是对的,因为它是一个settings.py问题。但是当我在Django环境中运行时,我没有遇到这个问题。但是当我想逐个运行单元测试时(通过使用Pydev的运行作为单元测试),它无法运行。 我需要做的是添加Django设置模块信息,所以现在我正在做的是在我的单元测试中添加以下行:

from django.core import management;
import BookIt.settings as settings;
management.setup_environ(settings)

这会加载我的Django项目设置,并允许我作为常规单元测试运行。 如果有人有更好的建议如何在Pydev中更干净地配置这个,请告诉我。

答案 1 :(得分:2)

一分钟前我遇到了同样的问题。调查我发现问题出在我的 settings.py *文件中。

检查您是否遇到Django正确查找设置文件的问题。

此错误消息完全没有意义。

* IIRC Django查找 settings.py 文件,如果找不到,它会查找环境变量DJANGO_SETTINGS_MODULE并试试。

答案 2 :(得分:-1)

这很容易解决。 如果您已经编写了settings.py(最有可能),只需导航到包含" settings.py"的目录。文件并执行它。

1] python 2]导入设置

这些命令应该可以解决问题。然后转到任何文件夹并继续执行。