如何调试Python Web应用程序?
我找不到关于调试Python网页应用的信息,特别是如何逐步跟踪网页请求的执行过程。
这难道就不可能吗?如果不行,那为什么呢?
3 个回答
0
在你的代码中使用Python调试器,方法是在你想开始调试的地方加上import pdb; pdb.set_trace()
。这样一来,当程序运行到这一行时,终端会暂停,让你可以检查代码的状态。
想了解更多信息,可以查看这里: http://plone.org/documentation/kb/using-pdb
3
如果你在用 Apache 运行你的网页应用,并且使用了 mod_wsgi 或者 mod_python,这两者都可以支持用 pdb 进行逐步调试。这里有个小窍门,你需要用 -X 这个标志让 Apache 以前台模式运行。
在我的 Gentoo 系统上,我是这样做的(这个命令基本上和 Apache 启动脚本用的命令一样,只是把 -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
11
如果你在代码里放入
import pdb
pdb.set_trace()
当执行到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同样可以继续执行程序。