有时当我运行manage.py
时,我会收到一条红色的神秘信息,上面写着Error: cannot import name <Name>
,而不是其他信息。
显然,这是一个简单的导入或语法错误,稍微调查一下,我通常可以修复它。但是其他时候我需要花很长时间来弄清楚我做错了什么。有没有办法让Django在这种情况下吐出更多信息?
答案 0 :(得分:11)
这是一个恼人的问题。幸运的是,它已被修复(最近):请参阅this ticket和this 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)
当出现循环导入时会发生这种情况,当一个模型依赖于另一个模型时,他们会在执行代码时尝试相互导入。
您可能希望粘贴导致问题的两个模型。
这将有助于我们调试。
此外,有时会出现信号,所以如果您有信号文件,请粘贴。