在Django上调试神秘的"错误:无法导入名称<Name>"

Con*_*ens 9 django

有时当我跑步的时候,我会manage.py收到一条红色的神秘信息Error: cannot import name <Name>.

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

eas*_*sel 11

这是一个恼人的问题.幸运的是,它已被修复(最近):看到这张票这个补丁.

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

curl "https://code.djangoproject.com/changeset/17197?format=diff&new=17197" | patch -p3\
Run Code Online (Sandbox Code Playgroud)

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

./manage.py shell --traceback
Run Code Online (Sandbox Code Playgroud)

并且您将获得完整的追溯而不仅仅是错误:无法导入...

瞧!