2010-08-09 7 views

Antwort

9

Wenn Sie

import pdb 
pdb.set_trace() 

in Ihrem Code setzen, wird die Web-App auf eine pdb Debugger-Sitzung fallen set_trace beim Ausführen.

Ebenfalls nützlich ist

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

, die Sie das Python-Interpreter fällt. Durch Drücken von Strg-d wird die Ausführung fortgesetzt.

Noch nützlicher ist

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

, die Sie in eine IPython Sitzung fällt (vorausgesetzt, Sie IPython installiert haben). Auch hier wird durch Drücken von Strg-d die Ausführung fortgesetzt.

3

Wenn Sie Ihre Web-Anwendung durch Apache und mod_wsgi oder mod_python ausgeführt wird, sowohl eine gewisse Unterstützung für mit pdb durch Debugging Schritt bereitzustellen. Der Trick ist, dass Sie Apache im Vordergrundmodus mit dem Flag -X ausführen müssen.

Auf meinem Gentoo System, das ich tun dies mit (dies ist der Apache-Init-Skript ersetzt die mit der -X -k beginnen nutzt im Wesentlichen der gleiche Befehl ist):

/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

Sie müssen möglicherweise auch die Option PythonEnablePdb aktivieren, wie in der Dokumentation zu modpython hier dokumentiert - http://modpython.org/live/current/doc-html/directives.html#pythonenablepdb – Guruprasad