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

如何在VSCode中调试Jupyter Notebook调用的自定义模块?

如何在VSCode中调试Jupyter Notebook调用的自定义模块

当然可以实现,按以下步骤调整配置和操作即可触发自定义模块中的断点:

1. 解决模块缓存问题

Python会缓存已导入的模块,修改模块后如果不重新加载,调试的还是旧版本代码:

  • 在Notebook单元格中执行import importlib; importlib.reload(你的模块名),确保加载最新的模块代码。
  • 确认模块所在路径已被VSCode识别:要么把模块放在当前工作目录,要么通过import sys; sys.path.append("模块所在目录路径")添加路径。

2. 修改VSCode调试配置

默认调试配置只会追踪Notebook单元格代码,需要调整launch.json:

  • 打开.vscode/launch.json(没有则手动创建),添加如下配置:
    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Python: Jupyter Notebook",
                "type": "python",
                "request": "launch",
                "program": "${file}",
                "justMyCode": false,
                "env": {"PYDEVD_WARN_EVALUATION_TIMEOUT": "1000"}
            }
        ]
    }
    
  • justMyCode: false是关键:这个参数会让调试器进入所有用户编写的代码(包括自定义模块),而不是只局限于Notebook单元格。

3. 正确启动调试流程

  • 不要直接点击Notebook的"运行单元格"按钮,而是在VSCode左侧调试面板中,选择刚才创建的Python: Jupyter Notebook配置,按下F5启动调试。
  • 调试器启动后,运行调用自定义模块函数的Notebook单元格,此时模块中的断点会正常触发,调试器会暂停并展示当前变量数据。

4. 额外排查点

  • 确认VSCode的Python解释器和Notebook使用的内核一致(右下角状态栏可切换),避免因环境不一致找不到模块源码。
  • 断点要设置在模块的可执行代码行上,比如函数内部的有效代码,不要放在空行、注释或函数定义的行上。
  • 若仍未触发,尝试重启VSCode和Jupyter内核,清除缓存状态。

内容的提问来源于stack exchange,提问作者Владислав Черкасов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 08:35:27