2010-08-09 7 views

Respuesta

9

Si pones

import pdb 
pdb.set_trace() 

en su código, la aplicación web se reducirá a una sesión de depurador PDB al momento de celebrar set_trace.

También es útil, es

import code 
code.interact(local=locals()) 

que te deja al intérprete de Python. Al presionar Ctrl-d se reanuda la ejecución.

Aún más útil, es

import IPython.Shell 
ipshell = IPython.Shell.IPShellEmbed() 
ipshell(local_ns=locals()) 

que te deja en una sesión de IPython (suponiendo que haya instalado IPython). Aquí también, al presionar Ctrl-d se reanuda la ejecución.

3

Si está ejecutando la aplicación web a través de Apache y mod_wsgi o mod_python, ambos proporcionan algún apoyo para el paso a través de la depuración con AP. El truco es que tienes que ejecutar apache en modo de primer plano con el indicador -X.

En mi sistema Gentoo que hago esto con (esto es esencialmente el mismo comando del script init Apache utiliza la sustitución de la -k empezar con el -X):

/usr/sbin/apache2 -D DEFAULT_VHOST -D INFO -D LANGUAGE -D SSL -D SSL_DEFAULT_VHOST -D PYTHON -d /usr/lib64/apache2 -f /etc/apache2/httpd.conf -X 
+0

También podría necesitar habilitar la opción PythonEnablePdb como se documenta en los documentos de modpython aquí - http://modpython.org/live/current/doc-html/directives.html#pythonenablepdb – Guruprasad

Cuestiones relacionadas