2010-07-15 2 views
8

Я встраивание IPython оболочки в сценарии Джанго (с сервером разработки, например runserver на локальном хосте), как это:IPython - «сломанный» оболочка/терминал после realoading Джанго

... 
from IPython.Shell import IPShellEmbed 
ipshell = IPShellEmbed() 
ipshell() 
... 

, который дает мне интерактивную оболочку в желаемое место. Теперь, если изменить исходный код, Django автоматически перезагружается, возможно, без правильного выхода из оболочки iPython и «разбивает» мой эмулятор терминала (xterm, konsole) - текст становится невидимым и т. Д. (Тот же эффект, если iPython, запущенный внутри Django, завершается с помощью Ctrl + d).

Любые предложения, что может быть причиной этого? (Вероятно, я использую iPython неправильно, но кто знает).

+0

У меня была такая же проблема с 'import pdb; pdb.set_trace', поэтому, вероятно, это не проблема с iPython. Тем не менее, я заметил это только при использовании virtualenv (с virtualenvwrapper), поэтому, возможно, это и вызывает его. –

+0

Получил ту же проблему, полюбил бы anwser. +1 –

+0

Не просто virtualenv. Для меня происходит запуск python по умолчанию в Ubuntu 10.10. – thepeer

ответ

4

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

Другой способ предотвратить это - использовать переключатель --reload в команде runserver. Это означает, что Django не перезагружается после изменения, но также не прерывает ваш отладчик.

+0

Спасибо! 'reset' также работает вокруг проблемы с 'import pdb; pdb.set_trace() ', отмеченный выше Арам Дульяном. –

Смежные вопросы