如何在VS Code中调试多单元格结构的Jupyter Notebook?
VS Code Jupyter Notebook 跨单元格调试问题处理
场景说明
- 老师提供的Jupyter Notebook将程序按类拆分至不同单元格,最后一个单元格为启动代码(负责创建主类实例并调用方法)
- 选择使用VS Code内置Jupyter Notebook,原因是浏览器版的调试与代码补全表现较差
- 当前痛点:不合并所有单元格时,调试启动单元格会因找不到其他单元格中的类而报错,只能临时合并单元格作为调试方案
可行解决方案
1. 确保前置类定义单元格已执行
调试启动单元格前,先手动运行所有存放类定义的前置单元格:
- 可以选中所有前置单元格,右键选择「Run Selected Cells」批量执行
- 或者点击Notebook工具栏中的「Restart Kernel and Run All Cells」,先让所有代码加载到内核环境中,再启动调试
2. 配置VS Code Jupyter调试任务
打开运行和调试面板(快捷键Ctrl+Shift+D),创建launch.json配置文件,添加以下内容:
{ "version": "0.2.0", "configurations": [ { "name": "Jupyter: 调试整个Notebook", "type": "jupyter-notebook", "request": "launch", "notebookFile": "${file}" } ] }
启动该调试配置后,VS Code会按单元格顺序执行代码,所有单元格中的断点都能被触发。
3. 将类代码转为外部模块
把各个类的代码导出到单独的.py文件(例如core_classes.py),在Notebook的第一个单元格中通过import core_classes引入模块,后续调试时可以直接在模块文件中设置断点,Notebook的启动单元格也能正常调用类,避免跨单元格的依赖问题。
内容的提问来源于stack exchange,提问作者Sebastien Tardif
相关产品推荐
相关产品推荐

