2010-07-15 14 views
8

sto embedding guscio ipython in uno script Django (con server di sviluppo, ad esempio runserver a localhost) come questo:ipython - "rotto" shell/terminale dopo realoading Django

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

che mi dà shell interattiva a il posto desiderato Ora, se modifichi il codice sorgente, Django si ricarica automaticamente, probabilmente senza chiudere correttamente la shell iPython, e "rompe" il mio emulatore terminale (xterm, konsole) - il testo diventa invisibile, ecc. (Stesso effetto se iPython in esecuzione in Django termina con Ctrl + d).

Qualche suggerimento come cosa potrebbe causare questo? (Probabilmente sto usando iPython in modo sbagliato, ma chi lo sa).

+0

Ho avuto lo stesso identico problema con 'import pdb; pdb.set_trace', quindi probabilmente non è un problema specifico per iPython. Tuttavia, ho notato questa cosa solo quando utilizzo un virtualenv (con virtualenvwrapper), quindi forse è questo che lo sta causando. –

+0

Hai lo stesso problema, mi piacerebbe il custode. +1 –

+0

Non solo virtualenv. Succede per me con python predefinito in Ubuntu 10.10. – thepeer

risposta

4

Non riesco a rispondere alla domanda perché sta andando male, ma posso dirvi come recuperarlo: esci dal server di debug e dai il comando reset.

Un altro modo per impedire che ciò accada è utilizzare lo switch --reload sul comando runserver. Ciò significa che Django non si ricaricherà dopo una modifica, ma non romperà il tuo debugger.

+0

Grazie! 'reset' risolve anche il problema con 'import pdb; pdb.set_trace() 'notato da Aram Dulyan sopra. –