导入错误:无法导入名称 signals
我正在使用Django 1.3.0和Python 2.7.1。在我写的每个测试中,只要我进行以下导入,就会出现上面的导入错误:
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 个回答
-1
这个问题很简单解决。
如果你已经写好了settings.py文件(这很可能),那么只需要进入包含这个"settings.py"文件的文件夹,然后执行它。
具体步骤是:
1] 输入python
2] 输入import settings
这两条命令就可以解决问题。然后你可以去任何文件夹,继续执行其他操作。
3
我刚才也遇到过同样的问题。经过调查,我发现问题出在我的 settings.py 文件上。
检查一下,看看你的 Django 是否能正确找到你的设置文件。
这个错误信息完全没用。
* 如果我没记错的话,Django 会先找 settings.py 文件,如果找不到,就会去找一个叫 DJANGO_SETTINGS_MODULE 的环境变量,然后试试这个。
5
@Hugo说得对,这确实是settings.py的问题。不过我在使用Django环境时并没有遇到这个问题。但是当我想要逐个运行单元测试(通过Pydev的“作为单元测试运行”功能)时,它却无法运行。
我需要做的就是添加Django的设置模块信息,所以现在我在我的单元测试中添加了以下几行:
from django.core import management; import BookIt.settings as settings; management.setup_environ(settings)
这样可以加载我的Django项目设置,让我能够像正常的单元测试一样运行。如果有人有更好的建议,能让我在Pydev中配置得更干净,请告诉我。