【LunarVim】python DAP配置

为了提高PyTorch 训练脚本 的调试体验,基于(WSL + Conda):

🚀 一键调试训练代码 + 自动用终端窗口输出 + 适配 tqdm/matplotlib + 哪怕 input() 也不会挂!


✅ 第一步:配置调试器 dap(带优化)

~/.config/lvim/config.lua 里加上 👇(如果你之前有类似配置就直接替换)

lvim.builtin.dap.active = true

-- 自动适配 Mason 安装的 debugpy
local mason_path = vim.fn.glob(vim.fn.stdpath("data") .. "/mason/")
pcall(function()
  require("dap").adapters.python = {
    type = "executable",
    command = mason_path .. "packages/debugpy/venv/bin/python",
    args = { "-m", "debugpy.adapter" },
  }
end)

-- 训练脚本调试配置
local dap = require("dap")
dap.configurations.python = {
  {
    type = "python",
    request = "launch",
    name = "🔍 Debug PyTorch Train Script",
    program = "${file}",
    console = "integratedTerminal",
    justMyCode = false, -- 能追踪库代码(如 torch)内部行为
    pythonPath = function()
      return "/home/your/miniconda3/envs/yolo11/bin/python" -- pyton路径
    end,
    env = {
      QT_QPA_PLATFORM = "offscreen", -- 防止 Qt 报错
      MPLBACKEND = "Agg",            -- matplotlib 非GUI后端
    },
  },
}

✅ 第二步:加一个快捷键菜单(which-key)

你可以加在 lvim.builtin.which_key.mappings 里:

lvim.builtin.which_key.mappings["d"] = {
  name = "+Debug",
  s = { "<cmd>lua require'dap'.continue()<CR>", "▶️ Start Debug (DAP)" },
  b = { "<cmd>lua require'dap'.toggle_breakpoint()<CR>", "⛔ Toggle Breakpoint" },
  o = { "<cmd>lua require'dap'.step_over()<CR>", "⏭ Step Over" },
  i = { "<cmd>lua require'dap'.step_into()<CR>", "⏬ Step Into" },
  u = { "<cmd>lua require'dap'.step_out()<CR>", "⏏ Step Out" },
  r = { "<cmd>lua require'dap'.restart()<CR>", "🔁 Restart Debug" },
  q = {
    function()
      local dap = require("dap")
      local dapui = require("dapui")
      dap.terminate()
      dap.disconnect()
      dap.close()
      dapui.close()
      vim.cmd("DapVirtualTextDisable")
    end,
    "❌ Stop Debug",
  },
}

按空格再按 d,就能看到完整的调试菜单。
在这里插入图片描述


✅ 第三步(可选):自动打开终端(split)

可以设置一个自动命令,在调试开始时打开一个 split 的终端(你不想要可以跳过):

vim.api.nvim_create_autocmd("User", {
  pattern = "DAPStarted",
  callback = function()
    vim.cmd("botright split | terminal")
  end,
})

🚀 使用方式

  1. 打开你的 train.py 脚本
  2. 设置断点(<Space> d b
  3. 执行调试(<Space> d s
  4. 终端窗口会自动 split 出来显示日志
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值