调试器#
调试在Spyder中通过集成增强版ipdb调试器在IPython控制台中实现。
这允许直接在Spyder图形界面中查看和控制断点及执行流程,同时也能使用所有熟悉的IPython控制台命令。
使用ipdb进行调试#
您可以通过调试菜单、调试工具栏以及可配置的键盘快捷键,配合标准的ipdb 控制台命令来完全控制调试器的执行。
此外,Editor会用一个箭头显示调试器当前停止的代码行。
Spyder的调试器提供语法高亮、代码自动补全和命令历史功能,这些功能与普通交互式解释器中的工作方式完全相同。
使用上下箭头键可以调出之前的命令,按Tab键可触发自动补全建议。
此外,IPython的magic functions在调试模式下也可用。
例如,您可以运行%ls来列出当前工作目录的内容,或运行%timeit来检查给定代码片段的运行速度。
最后,您可以在Spyder的调试器中像常规IPython提示符一样输入和执行多行语句,轻松运行复杂代码。
断点#
Spyder的调试器与面板集成,该面板列出了每个定义的断点的文件、行号和条件(如果有)。 要打开它,请选择,或按Ctrl-Shift-B(在macOS上是Cmd-Shift-B)。
有几种不同的方法来设置和清除断点:
通过调试菜单中的设置/清除断点选项。
通过按下可配置的键盘快捷键(默认为F12用于普通断点,或Shift-F12用于条件断点)。
通过在编辑器中的打开文件里点击行号左侧(按住Shift键可添加条件断点)。
在代码中使用内置函数
breakpoint()。交互式地,在调试会话中使用
b命令。
您可以通过变量浏览器在每个断点处访问和编辑局部及全局变量。
高级功能#
在调试时,您可以通过启用Spyder首选项中的新选项(位于下)来避免单步执行其他Python包。 这将跳过您已安装的所有内置和第三方Python模块。
如果您的代码中有与Pdb命令同名的变量(例如b或step),在调试时仍可以正常引用它们。
要调用相应的Pdb命令,只需在其前面加上感叹号(例如!b或!step)。
您可以让Spyder在每次调试器停止时自动执行自定义代码片段。 例如,您可以用它来设置特定变量,或导入常用模块,以便在调试时始终可用。 要进行设置,请前往,并输入您希望在每个步骤中执行的代码。
Matplotlib支持#
在调试器处于活动状态时,完全支持生成Matplotlib图形,包括所有不同的图形后端。
使用%matplotlib魔法命令切换到交互式后端(例如%matplotlib qt5)以在单独窗口中平移、缩放和调整绘图,或切换回默认的inline(%matplotlib inline)以在Plots面板中直接查看显示结果。
为了避免在调试时显示绘图,请在中停用选项。