将 Ipython 命名空间转移到 ipdb

发布于 2024-10-31 22:18:07 字数 356 浏览 4 评论 0原文

我正在 ipython 会话中。我已经加载了一个模块 foo,其中包含一个函数 foo.bar。在工作时,我注意到当我向它提供一些输入 x 时,foo.bar 给出了一些奇怪的输出,其中 x 是我本地中的一个变量ipython 范围。我想研究调试器中的行为。

如何在 foo.bar 处设置断点并在调试器中运行 foo.bar(x) ?

我知道 pdb.set_trace(),但它需要我打开 foo 模块的代码来手动插入断点,保存它,重新加载模块ipython等。必须有更好的方法。

I am in the middle of an ipython session. I've loaded a module foo which contains a function foo.bar. While working, I notice that foo.bar gives some weird output when I feed it some input x, where x is a variable in my local ipython scope. I would like to investigate the behavior in a debugger.

How would I set a breakpoint at foo.bar and run foo.bar(x) in a debugger?

I know about pdb.set_trace(), but it would require me to open up the code of the foo module to insert a breakpoint manually, save it, reload the module in ipython, etc. There has to be a better way.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(1

情独悲 2024-11-07 22:18:07

我相信在这种情况下您可以使用 pdb.runcall

import pdb
pdb.runcall(foo.bar, x)

I believe you can use pdb.runcall in this case:

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