在 Spyder iPython 解释器中抑制 ipdb 输出

Posted

技术标签:

【中文标题】在 Spyder iPython 解释器中抑制 ipdb 输出【英文标题】:Suppressing ipdb output in Spyder iPython interpreter 【发布时间】:2017-11-02 15:16:34 【问题描述】:

我有理由相信我的 iPython 解释器导致我的内核死机并重新启动,类似于在 this 链接和 that 链接中记录的问题。

后面的链接表明错误是由于调试器将ipdb的内容逐步输出到解释器中造成的。一位用户报告说,当他(和我引用)时,行为停止了

在调试模式下运行之前禁用日志记录到控制台

如何在 Spyder IDE/IPython 中“禁用日志记录到控制台”?我真的需要这样做,这样我至少可以逐步完成我的代码......

编辑

我想抑制这种输出

ipdb> > d:\temp\other const models\plaxis\output\plotparfile.py(16)PlotParFile()
     14     with open(filename,'r') as fid:
     15         lines = fid.readlines()
---> 16     fid.close()
     17     #split first line get header and pop it out
     18     header = lines[0].split()

> d:\temp\other const models\plaxis\output\plotparfile.py(18)PlotParFile()
     16     fid.close()
     17     #split first line get header and pop it out
---> 18     header = lines[0].split()
     19     lines.pop(0)
     20 

【问题讨论】:

这是 Spyder 中的一个错误是正确的。为避免这种情况,您需要从代码中删除任何向控制台打印内容的指令。 我的指令都没有在控制台中打印任何内容。我指的是这种输出(请参阅对原始问题的编辑)。这是 ipdb 调试器的自动输出。 【参考方案1】:

这里是 Spyder 开发人员)该输出是自动生成的,其目的是告诉您在调试时将您放在代码中的什么位置。

目前在 Spyder 中没有禁用它的选项。此外,我真的怀疑输出可能是任何内核故障的原因。

【讨论】:

好的,一切都很好。但我想找到一个可以使用 IDE 调试的稳定版本。我尝试在 anaconda 提示符中使用 conda install spyder=3.1.3 在第二个链接中指示降级。这降低了我的 spyder 版本,但后来我遇到了 3.1.4 中没有的新错误。例如 1) “无法导入名称 quick_guide”和 2) 变量资源管理器未与 Ipython IDE 同步和 3) IPython 冻结。这让我觉得 Spyder 3.1.3 甚至不如 Spyder 3.1.4 稳定。您对使用 IDE 进行调试有何建议? 您提到的所有错误都将在 Spyder 3.2 中修复,并在两三周内发布。几个月前我们就意识到了它们,但我们不得不做很多工作来修复它们,如here 所示。所以我的建议是让你等到那个版本发布。在此之前给您带来的不便,我们深表歉意。 我们正在努力在 6 月 15 日或最多 6 月 25 日发布它。 嗨@CarlosCordoba!非常感谢你们所做的所有工作!请考虑在未来版本中添加抑制 ipdb 输出的可能性。为了跟踪正在调试的行,我们可以只观察代码中的哪一行被突出显示。谢谢:) 我们正在努力为我们的下一个版本创建更好的调试器。

以上是关于在 Spyder iPython 解释器中抑制 ipdb 输出的主要内容,如果未能解决你的问题,请参考以下文章

启动ipython内核发生错误,在Spyder的IPython控制台中启动内核时出现PermissionError

在 Spyder 的 IPython 控制台中启动内核时出现 PermissionError

如何清除 Spyder 中的 iPython 控制台?

如何在 Spyder/IPython/matplotlib 中再次获得交互式绘图?

spyder中python 3的ipython控制台上的变量问题

如何将ipython添加入spyder的python console中