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]导入设置
这些命令应该起作用。然后转到任何文件夹并继续执行。