小编典典

如何使用Python中的spyder有效地进行调试?

python

我喜欢Python,也喜欢Spyder,但是我发现用Spyder进行调试很糟糕!

  • 每次我设置一个断点时,我都需要按两个按钮:首先是调试,然后是继续按钮(它会自动在第一行暂停),这很烦人。
  • 而且,与其让标准的iPython控制台具有自动完成功能,不如说我有一个糟糕的ipdb >>控制台,那只是垃圾。
  • 最糟糕的是,即使我进行打印或进行简单评估以找出错误所在,该控制台也会非常频繁地冻结。这比matlab差得多。
  • 最后但并非最不重要的一点是,如果我从ipdb >>控制台中调用一个函数,并在其中放置一个断点,它将不会就此停止。看来我必须在开始调试(ctrl + F5)之前在其中放置断点。

您是否有解决方案,或者可以告诉我如何调试python脚本和函数?

我在Windows 8.1 64位上使用全新安装的Anaconda。


阅读 218

收藏
2020-12-20

共1个答案

小编典典

此处为Spyder开发人员
)我们知道Spyder的调试经验远非理想。我们现在提供的功能与标准Python调试器非常相似,但是我们正在努力改进下一个主要版本中的功能,以提供更接近任何科学家对调试器的期望的东西(总之,常规的IPython控制台可以您可以在当前断点处检查并绘制变量)。

现在谈谈您的观点:

  1. 这是真的。我们正在考虑进行改进,以便如果用户按下“运行”按钮,并且当前文件中存在断点,则Spyder进入调试模式并执行程序,直到遇到第一个断点为止。

  2. ipdb是IPython调试器控制台。不幸的是,由于IPython体系结构的限制,它非常有限(没有代码完成,也没有带有箭头的历史记录)。此外,不可能在任何一个ipdb或常规pdb控制台中运行任意Python代码。您可以在ipdb其中运行的命令是评估其中的help命令时可以阅读的命令。

  3. 正如我所说,这是因为您无法评估任意Python代码。

  4. 您需要在我们的编辑器中放置新的断点,以便它们与我们的Python / IPython控制台同步

2020-12-20