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

发布于 2024-09-13 18:04:46 字数 83 浏览 6 评论 0原文

我似乎找不到任何有关调试 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

糖粟与秋泊 2024-09-20 18:04:46

如果您输入

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 也可以恢复执行。

If you put

import pdb
pdb.set_trace()

in your code, the web app will drop to a pdb debugger session upon executing set_trace.

Also useful, is

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

which drops you to the python interpreter. Pressing Ctrl-d resumes execution.

Still more useful, is

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

which drops you into an IPython session (assuming you've installed IPython). Here too, pressing Ctrl-d resumes execution.

尘世孤行 2024-09-20 18:04:46

如果您通过 apache 和 mod_wsgimod_python 都为使用 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

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):

/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
堇年纸鸢 2024-09-20 18:04:46

使用 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文