235得票6回答
如何在Python自带的调试器(PDB)中执行多行语句

所以我正在运行一个Python脚本,在其中调用Python的调试器PDB,写入:import ipdb; ipdb.set_trace() (iPython是PDB的版本,但我认为这并没有什么区别; 我仅使用它来获得彩色输出。) 现在,当我进入调试器时,我想执行一个多行语句,例如if子句或fo...

203得票16回答
使用IPython逐步调试

根据我所了解的,有两种方法可以在Python中调试代码: 1. 使用传统的调试器,例如`pdb`或`ipdb`。这支持命令,例如`c`(继续),`n`(跨过),`s`(进入)等,但您无法直接访问IPython shell,这对于对象检查非常有用。 2. 通过在代码中embedding一个I...

174得票9回答
如何退出pdb并允许程序继续运行?

我正在使用pdb模块来调试程序。我想知道如何退出pdb并让程序继续运行完成。由于该程序需要大量计算,因此我不希望在脚本尝试完成之前就退出。continue似乎无法工作。我应该如何退出pdb并继续我的程序?

147得票15回答
在Python代码中设置PDB断点的更简单方法?

只是一个方便的问题。我已经被像Visual Studio和XCode这样的IDE中的调试器宠坏了。我觉得使用import pdb; pdb.set_trace()设置断点有些笨拙(我不想在文件顶部导入pdb,因为我可能会忘记并将其留在那里)。 在Python代码中是否有一种更简单、不费力且不...

146得票11回答
在iPython笔记本中,正确的调试方法是什么?

据我所知,%debug magic 可以在一个单元格内进行调试。 但是,我有跨越多个单元格的函数调用。 例如:In[1]: def fun1(a) def fun2(b) # I want to set a breakpoint for ...

129得票5回答
当变量名与PDB命令冲突时,我该如何操作变量?

我的代码中充满了单字母变量(因为它是物理学方面的内容,这些字母具有特殊意义),以及我经常与 NumPy 交互的变量。 在使用 Python 调试器时,有时我想查看某个变量(比如 n)的值。然而,当我按下 n<enter> 键时,它会执行 PDB 的 (n)ext 命令,优先级更高...

117得票7回答
我能否在使用py.test时以某种方式使用Python调试器进行调试?

我正在使用py.test对我的Python程序进行单元测试。我希望能像通常一样使用Python调试器来调试我的测试代码(我的意思是在代码中使用pdb.set_trace()),但我无法使它起作用。 将pdb.set_trace()放入代码中不起作用(会引发IOError:捕获输出时从stdi...

100得票6回答
我该如何使用pdb跳过一个循环?

我该如何使用 pdb.set_trace() 跳过循环? 例如:pdb.set_trace() for i in range(5): print(i) print('Done!') pdb 在循环之前提示输入命令。所有1到5的值都返回后,我想在执行 print('Done!') 之...

91得票4回答
使用nosetests --pdb选项设置断点

nosetests --pdb可以让我在出现错误或失败时停止,但这对我的需求来说太晚了。在执行过程中逐步查看代码可以帮助我调试问题所在。 然而,nosetest非常有用,因为它们允许依赖相对导入的测试(即包中的测试)。 我如何在执行测试之前设置断点? 目前,我正在使用:python -m ...

86得票2回答
如何在使用pdb调试Python时打印所有变量的值,而不需要指定每个变量?

我正在使用pdb调试我的Python脚本,手册上说我可以使用pdb命令在某个时间点打印指定变量的值。但是如果我有很多变量,比如20个变量,并且我想跟踪所有变量的值,该怎么办?我要如何在不手动指定每个变量的情况下打印它们所有的值?以这个脚本为例:a = 1 b = 2 c = 3 我可以使用pd...