调试器#
Spyder 通过与 IPython 控制台中增强的 ipdb
调试器集成,提供调试支持。这允许用户直接从 Spyder GUI 查看和控制断点及执行流程,同时也能使用所有熟悉的 IPython 控制台命令。

使用 ipdb 调试#
你可以通过 调试 菜单、调试工具栏 和可配置的键盘快捷键,以及标准的 ipdb
控制台命令,完全控制调试器的执行。

此外,编辑器会用箭头指示调试器当前停止的代码行。

Spyder 的调试器提供语法高亮、代码补全和命令历史记录功能,其工作方式与普通的交互式解释器完全相同。
使用上下箭头可以调出之前的命令,按下 Tab 键可以触发自动补全建议。

此外,IPython 的魔法命令在调试模式下也可用。例如,你可以运行 %ls
列出当前工作目录的内容,或运行 %timeit
检查给定代码片段的执行速度。

最后,你可以像在常规 IPython 提示符中一样,在 Spyder 的调试器中输入并执行多行语句,以便轻松运行复杂的代码。

断点#
Spyder 的调试器集成了断点窗格,其中列出了每个已定义断点的文件、行和条件(如果有)。要打开它,请选择 ,或按下 Ctrl-Shift-B(在 macOS 上为 Cmd-Shift-B)。

有几种不同的方法可以设置和清除断点
通过调试菜单中的设置/清除断点选项。
通过按下可配置的键盘快捷键(默认为 F12 用于普通断点,或 Shift-F12 用于条件断点)。
通过在编辑器中打开的文件中单击行号左侧(按住 Shift 可添加条件断点)。
在你的代码中使用内置函数
breakpoint()
。在调试会话中,交互式地使用
b
命令。

你可以通过 变量管理器 访问和编辑每个断点处的局部和全局变量。

高级功能#
你可以在 Spyder 的偏好设置中,在 调试时忽略 Python 库 选项,从而避免在调试时单步执行其他 Python 包。这将跳过所有你已安装的内置和第三方 Python 模块。
下启用新的
如果你的代码中有变量与 Pdb 命令同名(例如 b
或 step
),你仍然可以在调试时正常引用它们。要调用相应的 Pdb 命令,只需在其前面添加一个感叹号(例如 !b
或 !step
)。

你可以让 Spyder 在调试器每次停止时自动执行一段自定义代码。例如,你可以用它来设置特定变量,或导入常用模块,以便在调试时它们始终可用。要进行此设置,请转到
,然后输入你希望在每个步骤中执行的代码。
Matplotlib 支持#
在调试器激活时,Matplotlib 图形的生成得到全面支持,包括所有不同的图形后端。使用 %matplotlib
魔法命令可以切换到交互式后端(例如 %matplotlib qt5
),以便在单独的窗口中平移、缩放和调整你的绘图,或者切换回默认的 inline
(%matplotlib inline
)以在 绘图 窗格中直接显示它们。

为避免在调试时显示绘图,请在 调试时处理执行事件 选项。
中停用