在Django </name>上调试神秘的“错误:无法导入名称<name>”

时间:2010-06-22 03:38:18

标签: django

有时当我运行manage.py时,我会收到一条红色的神秘信息,上面写着Error: cannot import name <Name>,而不是其他信息。

显然,这是一个简单的导入或语法错误,稍微调查一下,我通常可以修复它。但是其他时候我需要花很长时间来弄清楚我做错了什么。有没有办法让Django在这种情况下吐出更多信息?

2 个答案:

答案 0 :(得分:11)

这是一个恼人的问题。幸运的是,它已被修复(最近):请参阅this ticketthis patch

如果你想破解你的本地django安装(你在virtualenv或buildout下运行,对吗?),请转到django目录的根目录(带有README,INSTALL等的目录)并运行:< / p>

curl "https://code.djangoproject.com/changeset/17197?format=diff&new=17197" | patch -p3\

所以,如果你运行django trunk&gt; 17197,将补丁应用到你的django安装(它适用于我的django 1.2),或者等到django 1.4,你将能够做到这一点:

./manage.py shell --traceback

你将获得一个完整的追溯,而不仅仅是错误:无法导入......

瞧!

答案 1 :(得分:-1)

当出现循环导入时会发生这种情况,当一个模型依赖于另一个模型时,他们会在执行代码时尝试相互导入。

您可能希望粘贴导致问题的两个模型。

这将有助于我们调试。

此外,有时会出现信号,所以如果您有信号文件,请粘贴。