当前位置: 首页 > 面试题库 >

使用IPython进行断点引起的Python交互式调试

刁瀚昂
2023-03-14
问题内容

假设我有一个IPython会话,从中调用一些脚本:

> run my_script.py

有没有一种方法可以引入断点,my_script.py从中可以从IPython检查工作区?

我记得在以前的IPython版本中可以做到这一点:

from IPython.Debugger import Tracer;

def my_function():
    x = 5
    Tracer()
    print 5;

但是该子模块Debugger似乎不再可用。

假设我已经打开了IPython会话: 如何在我选择的位置停止程序并使用IPython检查我的工作区

通常,我更喜欢不需要我预先指定行号的解决方案,因为我希望Tracer()上面有多个这样的调用,而不必跟踪行号所在的位置。


问题答案:

Tracer()仍然存在IPython中在不同的模块。您可以执行以下操作:

from IPython.core.debugger import Tracer

def my_function():
    x = 5
    Tracer()()
    print 5

注意周围的其他通话括号 Tracer

编辑Tracer
不建议使用IPython
6及更高版本,因此应set_trace()改用:

from IPython.core.debugger import set_trace

def my_function():
    x = 5
    set_trace()
    print 5


 类似资料:
  • 我正在使用Python(IPython 我有一个3000个唯一ID的数组,可以从API中提取数据,一次只能使用一个ID调用API。 我希望以某种方式同时拨打3组1000个电话,以加快速度。 最好的方法是什么? 提前感谢任何帮助!

  • 从我所读到的内容来看,Python中有两种调试代码的方法: > 使用传统调试器,如或。它支持诸如用于、用于、用于等命令,但是您不能直接访问IPython shell,这对于对象检查非常有用。 通过在代码中嵌入IPython shell来使用IPython。您可以从IPython导入嵌入,然后在代码中使用。当您的程序/脚本命中语句时,您将被放到IPython shell中。这允许使用IPython的

  • 问题内容: 根据我的阅读,有两种方法可以在Python中调试代码: 使用传统的调试器,例如或。它支持诸如for ,for ,for等命令,但是您没有直接访问IPython shell的权限,这对于对象检查非常有用。 使用 IPython的 通过嵌入代码中的一个IPython的壳。您可以这样做,然后在您的代码中使用。当您的程序/脚本命中一条语句时,您将进入IPython shell。这允许使用所有I

  • 本文向大家介绍Linux中安装Python的交互式解释器IPython的教程,包括了Linux中安装Python的交互式解释器IPython的教程的使用技巧和注意事项,需要的朋友参考一下 IPython是Python的交互式Shell,提供了代码自动补完,自动缩进,高亮显示,执行Shell命令等非常有用的特性。特别是它的代码补完功能,例如:在输入zlib.之后按下Tab键,IPython会列出zl

  • 问题内容: 在Python脚本中,是否有任何方法可以判断解释器是否处于交互模式?这将很有用,例如,当您运行交互式Python会话并导入模块时,将执行略有不同的代码(例如,关闭日志记录)。 我已经看过判断python是否处于-i模式并在那里尝试了代码,但是,该函数仅在使用- i标志调用了Python的情况下才返回true,而在用于调用交互模式的命令没有参数时则返回true 。 我的意思是这样的: 问

  • 问题内容: 我需要使用自己的专用TTY在Python的单独进程中运行交互式Bash实例(我不能使用pexpect)。我使用了类似程序中常见的代码片段: 但是当我运行它时,我得到以下输出: 运行的轨迹显示一些错误: 该代码段看起来非常简单,Bash是否没有得到所需的东西?这可能是什么问题? 问题答案: 这是最后对我有用的解决方案(由qarma建议):