2010-08-09 13 views

risposta

9

Se mettete

import pdb 
pdb.set_trace() 

nel codice, l'applicazione web scenderà a una sessione di debug PDB su esecuzione set_trace.

anche utile, è

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

cui si scende a l'interprete Python. Premendo Ctrl-d si riprende l'esecuzione.

Ancora più utile, è

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

che vi porterà in una sessione IPython (supponendo di aver installato IPython). Anche qui, premendo Ctrl-d riprende l'esecuzione.

3

Se si esegue l'applicazione web attraverso apache e mod_wsgi o mod_python, entrambi forniscono qualche supporto per passo attraverso il debug con pdb. Il trucco è che devi eseguire apache in modalità primo piano con il flag -X.

Sul mio sistema Gentoo Lo faccio con (questo è essenzialmente lo stesso comando dello script apache init utilizza la sostituzione del -k Iniziamo con la -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

Potrebbe anche essere necessario abilitare l'opzione PythonEnablePdb come documentato nei documenti modpython qui: http://modpython.org/live/current/doc-html/directives.html#pythonenablepdb – Guruprasad

Problemi correlati