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

为什么Vimspector在NVIM的Python Flask项目中无法触发断点?

Vimspector 调试 Flask 断点不生效解决方案

问题根因

你当前的配置存在两个核心问题:

  1. 配置层级错误:env字段直接放在configurations根节点下属于无效配置,应该放到对应调试项的configuration块内
  2. Flask 开发模式默认开启的重载器会生成子进程处理业务请求,默认调试配置未开启子进程追踪,导致断点仅在父进程生效,无法命中实际处理请求的子进程代码

修复步骤

1. 调整 Vimspector 配置

修改后的完整配置参考如下:

{
  "configurations": {
    "python: Launch at macbook": {
      "adapter": "debugpy",
      "configuration": {
        "name": "python: Launch",
        "type": "python",
        "request": "launch",
        "cwd": "${workspaceRoot}",
        "python": "${workspaceRoot}/venv-tmp/bin/python",
        "stopOnEntry": false,
        "console": "integratedTerminal",
        "program": "${workspaceRoot}/app.py",
        "env": {
          "ENV": "development"
        },
        "subProcess": true,
        "justMyCode": false
      }
    }
  }
}

新增的两个配置项作用:

  • subProcess: true:开启子进程调试追踪,适配 Flask 重载器的多进程模式
  • justMyCode: false:关闭调试器的默认过滤规则,避免你的业务代码被判定为非用户代码跳过

2. 调整 Flask 启动代码

在你的app.py启动入口关闭重载器:

if __name__ == "__main__":
    # 关闭自动重载,避免多进程干扰调试
    app.run(debug=True, use_reloader=False)

可选:使用 flask run 命令启动的配置

如果你习惯用官方启动命令,把program字段替换为如下配置即可:

"module": "flask",
"args": ["run", "--no-reload", "--host=127.0.0.1", "--port=5000"]

配置修改完成后重启 Vimspector 会话,在路由函数内打断点,触发对应请求即可正常命中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:24:04