我正在使用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.
为什么会发生这种情况?
答案 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]导入设置
这些命令应该可以解决问题。然后转到任何文件夹并继续执行。