我似乎无法找到有关调试python Web应用程序的任何信息,特别是逐步执行Web请求。
这是不可能的吗?如果不是,为什么不呢?
答案 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_wsgi或mod_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