将 Ipython 命名空间转移到 ipdb
我正在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我相信在这种情况下您可以使用
pdb.runcall
:I believe you can use
pdb.runcall
in this case: