Non riesco a trovare alcuna informazione sul debug di un'applicazione web Python, in particolare attraverso l'esecuzione di una richiesta web.Come si esegue il passaggio/debug di un'applicazione Web Python?
non è possibile? se no, perché no?
Non riesco a trovare alcuna informazione sul debug di un'applicazione web Python, in particolare attraverso l'esecuzione di una richiesta web.Come si esegue il passaggio/debug di un'applicazione Web Python?
non è possibile? se no, perché no?
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.
utilizzare Python Debbuger, import pdb; pdb.set_trace()
esattamente dove si desidera avviare il debug e il terminale si interromperà su quella linea. Maggiori informazioni qui: http://plone.org/documentation/kb/using-pdb
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
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
Come stai eseguendo l'applicazione web? – Mark