2010-07-15 18 views
8

estoy incrustación de concha IPython en un script Django (con servidor de desarrollo, por ejemplo de ejecución del servidor en localhost) como esto:IPython - "roto" shell/terminal después de realoading Django

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

que me da al intérprete de comandos interactivo el lugar deseado Ahora, si modifico el código fuente, Django se recarga automáticamente, probablemente sin salir correctamente del shell iPython, y "rompe" mi emulador de terminal (xterm, konsole) - el texto se vuelve invisible, etc. (el mismo efecto si iPython corriendo dentro de Django termina con Ctrl + d).

¿Alguna sugerencia como qué podría estar causando esto? (Probablemente estoy usando iPython de una manera incorrecta, pero quién sabe).

+0

He estado teniendo exactamente el mismo problema con 'import pdb; pdb.set_trace', por lo que probablemente no sea un problema específico de iPython. Sin embargo, solo he notado que esto sucede cuando uso un virtualenv (con virtualenvwrapper), así que tal vez eso es lo que está causando. –

+0

Tengo el mismo problema, me encantaría el awser. +1 –

+0

No solo virtualenv. Me ocurre ejecutar Python por defecto en Ubuntu 10.10. – thepeer

Respuesta

4

No puedo responder a la pregunta de por qué está fallando, pero puedo decirle cómo recuperarse de ella: salga del servidor de depuración y proporcione el comando reset.

Otra forma de evitar que esto ocurra es usar el interruptor --reload en el comando runserver. Esto significa que Django no volverá a cargar después de un cambio, pero tampoco romperá tu depurador.

+0

Gracias! 'reset' también funciona alrededor del problema con 'import pdb; pdb.set_trace() 'apuntada por Aram Dulyan arriba. –