2010-04-29 11 views
8

Al depurar mis aplicaciones django utilizo pdb para la depuración interactiva con pdb.set_trace().¿Hay alguna forma de que pdb y Mac Terminal jueguen bien?

Sin embargo, cuando modifico un archivo, el servidor web django local se reinicia y luego no puedo ver lo que escribo en el terminal, hasta que escriba reset.

¿Hay alguna forma de que esto ocurra automáticamente? Puede ser realmente molesto, tener que cancelar el runserver y reiniciarlo y reiniciarlo todo el tiempo. Me dijeron que no sucede en otros SO (ubuntu), ¿hay alguna forma de que esto no suceda en la Mac? (Estoy usando Snow Leopard).

Respuesta

8

OK - esto funciona para mí creé un ~/.pdbrc y añadió

import os
os.system ("stty sane")

Ahora cada vez pdb se ejecuta, restablece la configuración de línea a la sanación.

Si me cae al terminal, entonces todavía tengo que hacerlo manualmente, pero resuelve tener que salir del servidor y reiniciar todo el tiempo.

1

Intente [q] uit pdb antes de guardar los cambios en un archivo. Esto evitará que la consola se agite contigo, pero solo para esa ejecución de pdb.set_trace().

Aún tendrá que recurrir a la antigua^C + reset + ./manage.py runserver cuando se le olvidó salir de pdb. Una cosa que puede hacer que el reinicio sea un poco menos molesto es poner el reinicio y el servidor de ejecución en una línea. De esta forma, el restablecimiento es solo un rápido ^Rreset o flecha arriba.

[ ... ] 
Development server is running at http://127.0.0.1:8000/ 
Quit the server with CONTROL-C. 
^C$ reset && ./manage.py runserver 
1

El mejor que he encontrado es hacer un reset en el interior pdb de este modo:

import os; os.system ("reset");

Cuestiones relacionadas