如何单步执行/调试python Web应用程序?

时间:2010-08-09 18:21:18

标签: python debugging step-into

我似乎无法找到有关调试python Web应用程序的任何信息,特别是逐步执行Web请求。

这是不可能的吗?如果不是,为什么不呢?

3 个答案:

答案 0 :(得分:10)

如果你把

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继续执行。

答案 1 :(得分:3)

如果您通过apache和mod_wsgimod_python运行Web应用程序,则两者都为使用pdb进行调试提供了一些支持。诀窍是你必须使用-X标志在前台模式下运行apache。

在我的Gentoo系统上,我这样做(这与apache init脚本使用-k start替换为-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

答案 2 :(得分:0)

使用Python Debugger,import pdb; pdb.set_trace()到达您想要开始调试的位置,终端将在该行中暂停。 更多信息: http://plone.org/documentation/kb/using-pdb