如何单步执行/调试 python Web 应用程序?
我似乎找不到任何有关调试 python Web 应用程序的信息,特别是单步执行 Web 请求的信息。
这不可能吗?如果不是,为什么不呢?
I can't seem to find any information on debugging a python web application, specifically stepping through the execution of a web request.
is this just not possible? if no, why not?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您输入
代码,Web 应用程序将在执行
set_trace
时进入 pdb 调试器会话。同样有用的是,
它会将你带到 python 解释器。按 Ctrl-d 恢复执行。
更有用的是,
它会让您进入 IPython 会话(假设您已经安装了 IPython)。在这里,按 Ctrl-d 也可以恢复执行。
If you put
in your code, the web app will drop to a pdb debugger session upon executing
set_trace
.Also useful, is
which drops you to the python interpreter. Pressing Ctrl-d resumes execution.
Still more useful, is
which drops you into an IPython session (assuming you've installed IPython). Here too, pressing Ctrl-d resumes execution.
如果您通过 apache 和 mod_wsgi 或 mod_python 都为使用 pdb 进行单步调试提供了一些支持。诀窍是你必须使用 -X 标志在前台模式下运行 apache。
在我的 Gentoo 系统上,我使用以下命令执行此操作(这本质上与 apache init 脚本使用的命令相同,将 -k 开头替换为 -X):
If you are running your web application through apache and mod_wsgi or mod_python, both provide some support for step through debugging with pdb. The trick is you have to run apache in foreground mode with the -X flag.
On my Gentoo system I do this with (this is essentially the same command the apache init script uses replacing the -k start with the -X):
使用 Python 调试器,导入 pdb; pdb.set_trace() 正是您想要开始调试的位置,您的终端将在该行暂停。
更多信息请点击这里:
http://plone.org/documentation/kb/using-pdb
use Python Debbuger,
import pdb; pdb.set_trace()
exactly where you want to start debugging, and your terminal will pause in that line.More info here:
http://plone.org/documentation/kb/using-pdb