2010-07-15 49 views
8

我的IPython嵌入外殼的Django的腳本(使用開發服務器,如在的runserver本地主機),這樣之後的 「破」 殼/端子:IPython的 - realoading Django的

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

這使我在交互shell所需的地方。現在,如果修改源代碼,Django可能會自動重新加載,可能沒有正確退出iPython shell,並「斷開」我的終端模擬器(xterm,konsole) - 文本變得不可見,等等(如果在Django中運行的iPython以Ctrl + d)。

任何可能導致此問題的建議? (我可能以錯誤的方式使用iPython,但誰知道)。

+0

我一直有與'import pdb; pdb.set_trace',所以它可能不是iPython特有的問題。然而,當我使用virtualenv(使用virtualenvwrapper)時,我只注意到這種情況,所以也許這就是它的原因。 – 2010-07-16 00:34:27

+0

得到了同樣的問題,會愛上anwser。 +1 – 2010-07-17 14:26:39

+0

不只是virtualenv。我發生在Ubuntu 10.10中運行默認python。 – thepeer 2011-02-08 14:04:14

回答

4

我無法回答爲什麼會出錯的問題,但我可以告訴您如何從中恢復:退出調試服務器併發出reset命令。

防止這種情況發生的另一種方法是使用runserver命令中的--reload開關。這意味着Django在更改後不會重新加載,但它也不會破壞調試器。

+0

謝謝! 'reset'也可以解決'import pdb;上面的Aram Dulyan指出了pdb.set_trace()。 – 2012-05-22 17:23:19