【Debug】vscode 调试python,如何配置固定调试文件

在VSCode中调试Python时,要配置固定调试文件 (即每次启动调试都默认运行指定文件,而非当前打开的文件),核心是通过修改launch.json配置文件实现。以下是分步操作指南:

一、打开调试配置文件(launch.json)

  1. 打开VSCode,切换到「运行和调试」面板(快捷键:Ctrl+Shift+D / Cmd+Shift+D);
  2. 若从未配置过调试,面板会显示「创建launch.json文件」,点击它;
  3. 在弹出的环境选择中,选择「Python」→「Python File」(基础Python文件调试模板);
    • 若已有launch.json,直接点击面板右上角的「齿轮图标」打开编辑即可。

此时会在项目根目录的.vscode文件夹下生成launch.json文件,默认内容类似:

json 复制代码
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: 当前文件",
            "type": "python",
            "request": "launch",
            "program": "${file}",  // 关键:${file}表示「当前打开的文件」
            "console": "integratedTerminal",
            "justMyCode": true
        }
    ]
}

二、修改配置为「固定文件」

核心是将program字段的值从 ${file}(当前文件)改为目标文件的绝对路径/相对路径

方式1:相对路径(推荐,项目移植性更强)

若固定调试的文件是项目内的main.py(根目录),或src/run.py(子目录),直接写相对路径:

json 复制代码
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: 固定调试main.py",  // 自定义名称,方便识别
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/main.py",  // 固定文件:项目根目录下的main.py
            // 若文件在子目录:"${workspaceFolder}/src/run.py"
            "console": "integratedTerminal",
            "justMyCode": true
        }
    ]
}
方式2:绝对路径(适合文件位置固定的场景)

直接写文件的完整路径(注意路径分隔符:Windows用\\,Mac/Linux用/):

json 复制代码
// Windows示例
"program": "D:/projects/my_python/main.py",
// Mac/Linux示例
"program": "/Users/xxx/projects/my_python/main.py"

关键变量说明(避免路径错误)

变量 含义
${workspaceFolder} VSCode当前打开的「工作区根目录」(必选)
${file} 当前激活的文件(默认值,需替换)
${fileDirname} 当前文件所在目录(辅助用)

三、验证配置

  1. 保存launch.json后,回到「运行和调试」面板;
  2. 顶部的调试配置下拉框会显示你命名的配置(如「Python: 固定调试main.py」);
  3. 点击「绿色启动按钮」或按F5,VSCode会直接运行你指定的固定文件,而非当前打开的文件。

进阶:多配置共存(可选)

若需要同时保留「当前文件调试」和「固定文件调试」,可在configurations数组中添加多个配置项,示例:

json 复制代码
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: 当前文件",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "justMyCode": true
        },
        {
            "name": "Python: 固定调试main.py",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/main.py",
            "console": "integratedTerminal",
            "justMyCode": true
        }
    ]
}

使用时只需在调试面板的下拉框中选择对应的配置即可。

常见问题解决

  1. 路径错误 :确保program路径正确,可通过${workspaceFolder}拼接相对路径,避免手写绝对路径出错;
  2. 虚拟环境问题 :若使用虚拟环境,需在launch.json中指定pythonPath(旧版VSCode)或确保VSCode选中了正确的解释器(左下角可切换);
  3. 调试无反应 :检查launch.json的JSON格式是否合法(无逗号错误、引号配对),可通过VSCode的语法检查提示修正。

通过以上配置,就能实现每次调试都固定运行指定的Python文件,无需每次手动选择或切换文件。

相关推荐
西西弗Sisyphus4 小时前
YOLO26 自定义损失函数 重写 init_criterion 方法 损失类不继承基类
pytorch·python·yolo·yolo11·yolo26
qq_338432374 小时前
VS Code 远程 WSL 中 Claude Code 导致 Java 文件修改被自动撤回的一次排查
vscode·vibe coding·claude code
装不满的克莱因瓶5 小时前
RLHF中的PPO算法——大语言模型对齐优化的核心引擎
人工智能·python·深度学习·算法·机器学习·语言模型·自然语言处理
c_lb72885 小时前
期货主连研究具体月实盘:KQ 连续与标的月份偏差怎么记
python·区块链
绘梨衣5475 小时前
采集基类设计遇到的描述符bug
爬虫·python·bug
TechWayfarer5 小时前
IP精准定位服务在保险行业的接入实践:区域需求洞察与精准服务
数据库·python·tcp/ip·flask
Li#5 小时前
AI编写操作使用说明书需要用到的工具和能力
python·ai编程·ai写作
红宝村村长6 小时前
torch.autograd.Function.apply()
开发语言·python
花间相见6 小时前
【LeetCode01】—— 无重复字符的最长子串:滑动窗口经典题详解
python·算法·leetcode
何以解忧,唯有..6 小时前
Python 中的继承机制:从基础到高级用法详解
java·开发语言·python