Отладка загадочного "Ошибка: невозможно импортировать имя <Name>" в Django - PullRequest
9 голосов
/ 22 июня 2010

Иногда, когда я запускаю manage.py, я получаю загадочное сообщение красного цвета с надписью Error: cannot import name <Name> и ничего больше.

Очевидно, это простая ошибка импорта или синтаксиса, и, немного осмотревшись, я обычно могу это исправить. В других случаях, однако, мне требуется много времени, чтобы понять, что именно я сделал не так. Есть ли способ заставить Джанго выплевывать больше информации в этой ситуации?

Ответы [ 2 ]

11 голосов
/ 10 января 2012

Это досадная проблема. К счастью, это было исправлено (недавно): см. этот билет и этот патч .

Если вы хотите просто взломать вашу локальную установку django (вы работаете в virtualenv или buildout, верно?), Перейдите в корень вашей директории django (с README, INSTALL и т. Д.) И запустите: 1007 *

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

Итак, если вы запустите django trunk> 17197, примените патч к вашей установке django (для меня это применимо к django 1.2) или подождите, пока django 1.4 не сделает это:

./manage.py shell --traceback

И вы получите полную трассировку вместо только ошибки: невозможно импортировать ...

Voila!

0 голосов
/ 21 июня 2011

это происходит, когда появляется циклический импорт, когда одна модель зависит от другой и, в свою очередь, они пытаются импортировать друг друга при выполнении кода.

Возможно, вы захотите вставить две модели, которые вызывают у вас проблемы.

Это поможет нам отладить.

Также иногда это происходит с сигналами, поэтому, если у вас есть файл сигналов, вставьте его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...