You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode调试Jupyter Notebook回调函数无法触发断点的求助

解决VSCode中Jupyter Notebook回调函数断点无法触发的问题

以下是几个可行的解决方法:

方法1:使用IPython内置调试器替代VSCode断点

由于interact_manual的回调函数运行在IPython内核的异步上下文里,VSCode的调试器无法直接捕获。改用IPython的set_trace()可以强制触发内核自带的调试器:

修改你的add_code_cell函数:

def add_code_cell(s):
    from IPython.core.debugger import set_trace
    set_trace()  # 触发IPython调试器
    
    if s=="test":
        file_text=s
    else:
        file_text="No such file"
    
    text=file_text.replace('\n','\\n').replace("\"","\\\"").replace("'", "\\'")
    javascript = Javascript('''
    var cell = IPython.notebook.insert_cell_below("code")
    cell.set_text("{}")
    '''.format(f'{text}'))
    
    return javascript

点击按钮后,调试器会在Notebook的输出区域启动,你可以通过输入调试命令(如n单步执行、c继续、q退出)来调试函数逻辑。

方法2:关闭VSCode的"仅调试我的代码"设置

VSCode默认会跳过外部库代码的调试,但IPython处理Widget回调的逻辑可能被误判为外部代码。修改调试配置:

  • 打开VSCode的launch.json文件(如果没有则创建)
  • 添加或修改justMyCode选项为false:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Jupyter Notebook",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "justMyCode": false
        }
    ]
}

重新启动调试会话,尝试触发回调断点。

方法3:事后调试(%debug魔法命令)

如果回调函数执行时出现异常,可以在Notebook中新建一个单元格,输入%debug并运行,直接进入异常发生时的调试上下文,查看变量和调用栈。

内容的提问来源于stack exchange,提问作者jmk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 13:55:36