关于python:ImportError:无法导入名称信号

ImportError: cannot import name signals

我将Django1.3.0与Python2.7.1结合使用。在每个测试中,我编写以下导入,得到上面的导入错误:

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

完整堆栈跟踪:

1
2
3
4
5
6
7
8
9
10
11
  File"C:\Program Files (x86)\j2ee\plugins\org.python.pydev.debug_1.6.3.2010100513\pysrc
unfiles.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.

你知道为什么会这样吗?


@雨果说得对,这是一个设置问题。但是我在Django环境中运行时没有遇到这个问题。但当我想逐个运行单元测试(通过使用pydev的run-as-unittest)时,它失败了。我需要做的是添加django设置模块信息,所以现在我要做的是将以下行添加到我的单元测试中:

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

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


我刚才也遇到了同样的问题。调查中我发现问题出在我的settings.py*文件上。

检查Django是否有问题,正确查找设置文件。

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

*iirc django查找settings.py文件,如果找不到,它将查找环境变量django_settings_模块并尝试该操作。


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

1 ]Python2]导入设置

这些命令应该起作用。然后转到任何文件夹并继续执行。