Я встраиваю оболочку iPython в сценарий Django (с сервером разработки, например, runserver в localhost) как это:
...
from IPython.Shell import IPShellEmbed
ipshell = IPShellEmbed()
ipshell()
...
который дает мне интерактивную оболочку в желаемом месте. Теперь, если изменяют исходный код, Django автоматически перезагружает, вероятно, правильно не выходя iPython из оболочки, и "повреждает" мой эмулятор терминала (xterm, консоль) - текст становится невидимым, и т.д. (тот же эффект, если iPython, работающий в Django, завершается с Ctrl+d).
Какие-либо предложения как, что могло вызывать это? (Я, вероятно, использую iPython неправильным способом, но кто знает).
Я не могу ответить на вопрос, почему это происходит, но могу сказать, как от этого оправиться: выйдите из отладочного сервера и дайте команду reset
.
Другой способ предотвратить это - использовать переключатель --reload
в команде runserver
. Это означает, что Django не будет перезагружаться после изменений, но это также не сломает ваш отладчик.