VS Code交互式模式下Python断点调试及相关问题咨询
问题解答
为什么断点未触发?
使用SHIFT+ENTER执行单元格属于常规运行模式,不会启动调试器。断点仅在调试模式下生效,因此直接执行时会跳过断点,直接抛出ZeroDivisionError异常。
保留现有变量并激活调试器的方法
要保留当前会话中的变量(如t)并触发断点,需在现有内核会话中启动调试模式,具体步骤如下:
- 确保当前Jupyter内核处于运行状态(不要重启内核,否则
t等变量会丢失)。 - 选择以下任一方式运行代码:
- 使用单元格的调试按钮:在目标单元格左侧找到「调试单元格」图标(虫子形状),点击它运行单元格。这会在现有内核中以调试模式执行代码,自动触发断点。
- 启动调试会话后执行:打开VS Code左侧的调试面板,选择「Jupyter」调试环境并启动会话。之后按
SHIFT+ENTER执行单元格,调试器会自动命中断点。 - 附加到运行中的内核:通过
CTRL+SHIFT+P执行Jupyter: Attach to Running Kernel命令,将调试器附加到当前活跃的内核,再重新运行目标单元格即可触发断点。
跳转到interactiveshell.py是否正常?
这是正常现象。Jupyter调试器需要与IPython内核的执行逻辑对接,启动调试时会先进入内核的内部代码(如interactiveshell.py)。你可以:
- 按
F5(继续):调试器会直接跳转到你设置的断点处。 - 按
F11(单步进入):逐步跳过内核代码,最终进入你的myfunc函数。
内容的提问来源于stack exchange,提问作者BinaryMonkey
相关产品推荐
相关产品推荐

