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

VSCode Django调试:debugpy断点失效,python配置正常

问题分析与解决方案

为什么两种配置表现不同?

VSCode中python类型的调试配置基于旧版ptvsd调试器实现,而debugpy是官方推出的新一代Python调试器,两者的配置解析逻辑、调试启动流程存在差异。针对Django管理命令这类非Web服务的场景,debugpy的默认配置可能未能正确识别代码路径或初始化调试上下文,导致断点无法命中。

这是社区反馈过的已知问题,主要集中在debugpy对Django管理命令的调试支持上,尤其是路径映射、子进程调试的处理环节。

让debugpy正常调试Django管理命令的解决方案

方案1:调整debugpy配置,添加console与subProcess参数

修改.vscode/launch.json中的debugpy配置项,明确控制台类型并开启子进程跟踪:

{
    "name": "Django Command (debugpy)",
    "type": "debugpy",
    "request": "launch",
    "program": "${workspaceFolder}/manage.py",
    "args": [
        "hello_world"
    ],
    "django": true,
    "justMyCode": false,
    "console": "integratedTerminal",
    "subProcess": true
}

subProcess: true会让debugpy跟踪Django管理命令启动的子进程,console: integratedTerminal确保调试上下文与代码路径正确关联。

方案2:更新debugpy到最新版本

旧版debugpy存在Django管理命令调试的兼容性问题,执行命令更新:

pip install --upgrade debugpy

更新后重启VSCode再尝试调试。

方案3:移除django: true配置项

部分场景下,django: true的自动配置会干扰debugpy对管理命令的调试逻辑,尝试将其设为false:

{
    "name": "Django Command (debugpy)",
    "type": "debugpy",
    "request": "launch",
    "program": "${workspaceFolder}/manage.py",
    "args": [
        "hello_world"
    ],
    "django": false,
    "justMyCode": false
}

手动指定调试目标为manage.py,避免自动配置带来的路径问题。

验证步骤

  • 保存修改后的launch.json
  • 重新设置断点
  • 启动debugpy配置的调试会话
  • 检查断点是否正常触发

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 10:34:58