7

我将 Django 1.3.0 与 Python 2.7.1 一起使用。在每次测试中,我编写了以下导入,我得到了上面的 importError:

从 django.utils 导入单元测试
从 django.test.client 导入客户端

完整的堆栈跟踪:

  文件“C:\Program Files (x86)\j2ee\plugins\org.python.pydev.debug_1.6.3.2010100513\pysrc\runfiles.py”,第 342 行,在 __get_module_from_str
    mod = __import__(modname)
  文件“C:/Users/benjamin/workspace/BookIt/src/BookIt/tests\basic_flow.py”,第 11 行,在
    从 django.test.client 导入客户端
  文件“C:\Python27\lib\site-packages\django\test\__init__.py”,第 5 行,在
    从 django.test.client 导入客户端,RequestFactory
  文件“C:\Python27\lib\site-packages\django\test\client.py”,第 21 行,在
    从 django.test 导入信号
ImportError:无法导入名称信号
错误:模块:basic_flow 无法导入。

任何想法为什么会发生这种情况?

4

3 回答 3

5

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

从 django.core 导入管理;
导入 BookIt.settings 作为设置;
management.setup_environ(设置)

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

于 2011-05-14T17:03:16.070 回答
3

一分钟前我遇到了同样的问题。调查后我意识到问题出在我的settings.py * 文件上。

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

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

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

于 2011-05-13T02:34:11.530 回答
-1

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

1] python 2] 导入设置

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

于 2014-06-23T06:57:36.187 回答