2010-08-09 29 views

回答

9

如果你把

import pdb 
pdb.set_trace() 

在你的代码,Web应用程序将在执行set_trace下降到PDB调试会话。

也是有用的,是

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

它会把你的Python解释器。按下Ctrl-d恢复执行。

还有更有用,是

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

它会把你到IPython的会话(假设你已经安装的IPython)。在这里,按Ctrl-d恢复执行。

3

如果您正在运行通过Apache和mod_wsgimod_python你的web应用,都提供了通过与PDB调试一步一定的支持。诀窍是你必须用-X标志在前台模式下运行apache。

在我的Gentoo系统我这样做是有(这基本上是在Apache的init脚本使用更换-k与-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

您可能还需要启用PythonEnablePdb选项,如modpython文档中所述 - http://modpython.org/live/current/doc-html/directives.html#pythonenablepdb – Guruprasad 2014-05-29 12:19:00