【问题标题】:pdb set_trace() is not working properly in spyder 3pdb set_trace() 在 spyder 3 中无法正常工作
【发布时间】:2017-04-05 06:52:38
【问题描述】:

当我写作时(在任何脚本上):

导入pdb; pdb.set_trace()

  1. 有时当我按 n+enter 时,将我发送到“interactiveshell”

  2. 其他时候,如果按 n+enter 我可以继续前进,我无法再看到在“变量资源管理器”中生成的变量发生了什么,就像我几天前所做的那样(甚至完全停止调试过程)

这不是几天前发生的(调试器以相同的使用方式正常工作),但是我无法再次像往常一样使用调试器。

提前致谢。 劳尔

【问题讨论】:

    标签: python-2.7 debugging spyder pdb


    【解决方案1】:

    (Spyder developer here) pdb.set_trace() 在 2016 年 9 月发布 Spyder 3.0 时不受支持。在此之前我们没有正式支持,事实上它的工作是运气的问题。

    不过,这个问题在 2017 年 7 月发布的 Spyder 3.2.0 中得到了解决。

    【讨论】:

    • 知道了,但是我经常使用单元格(#%%),所以当我调试特定单元格时,调试器会遍历所有单元格,而不是专门针对我所在的单元格调试。另一方面,如果我使用 control + enter 执行这样的单元格,调试器将无法工作,执行整个脚本而不考虑断点。有什么办法可以解决这个问题吗?最后,当我调试时,我无法双击访问创建的每个变量(即使我完全停止调试过程),有没有办法访问它们以检查它们是否被正确创建?
    • 不支持调试特定单元格(我真的不知道我们怎么能支持它。Matlab 做到了吗?如果是,怎么做?)关于在调试时检查变量,不幸的是在重组 IPython 控制台后的 Spyder 3.0。我们会在几个月后尝试重新启用它。
    • 我会尝试 eclipse 看看我是否可以在那里正确调试
    • @CarlosCordoba,为您跟进问题。 pdb.set_trace() 的好处之一是我可以在该特定点运行调试,而无需从头开始重新运行文件。如果我确实使用F12 设置断点,然后使用调试工具栏在代码中移动,它必须始终从文件的开头开始,我不一定需要它一直这样做。我怎样才能让它进入我的代码中特定单元格或块的调试模式并跳过所有前面的行,因为变量已经根据需要存储了?
    • @chitown88,我更新了答案以反映 Spyder 中 pdb.set_trace() 的当前状态。
    猜你喜欢
    • 2020-03-26
    • 2015-03-27
    • 1970-01-01
    • 2013-11-17
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多