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

VS Code调试当前目录Python文件失效,求有效解决办法

VS Code Python调试工作目录异常问题

问题背景

这个问题已经被问过好几次,但之前的解决方案都不管用了,所以来找最新的修复办法。

工作区目录结构

我的VS Code工作区是这样的:

  • work__assignments(VS Code主工作区文件夹)
    • assignment__1
      • data
      • modules
      • tests
    • assignment__2
      • data
      • modules
      • tests

具体问题

我在主工作区下的子文件夹(比如work__assignments > assignment__2 > modules)里写代码,调试的时候,调试器总是从主工作区work__assignments启动,导致找不到当前modules目录下的其他模块,调试直接失败。

已经试过但没用的方法

  1. 修改launch.json添加"cwd": "${fileDirname}"配置:
{
    "name": "Python: Current File",
    "type": "python",
    "request": "launch",
    "program": "${file}",
    "console": "integratedTerminal",
    "cwd": "${fileDirname}"
}
  1. 修改launch.json添加"cwd": ""配置:
{
    "name": "Python: Current File",
    "type": "python",
    "request": "launch",
    "program": "${file}",
    "console": "integratedTerminal",
    "cwd": ""
}
  1. 修改launch.json添加如下配置:
{
    "name": "Python: Current File",
    "type": "python",
    "request": "launch",
    "program": "${file}",
    "console": "integratedTerminal",
    "cwd": "${workspaceFolder}",
    "env": {
        "PYTHONPATH": "${cwd}"
    }
}
  1. 修改VS Code偏好设置(路径:File > Preferences > Settings > Python > Execute in File Dir)

每次调试我都是点右上角的“Debug Python File”按钮,但调试器就是认准主工作区启动,不肯用代码所在的目录。


解决方案

方法1:确认launch.json的存放位置

得确保你的launch.json是放在当前工作区的.vscode文件夹里,不是全局设置里的.vscode目录。要是用的全局配置,可能覆盖不了当前工作区的调试规则。

方法2:别用右上角的默认调试按钮

右上角的“Debug Python File”可能会自动用临时配置,完全不理你写的launch.json。试试这么操作:

  • 按Ctrl+Shift+D打开左侧的“运行和调试”面板
  • 在顶部的下拉菜单里选你自己定义的Python: Current File配置
  • 点绿色启动按钮开始调试,别再点右上角的按钮了

方法3:更新Python插件

旧版本的VS Code Python插件可能存在cwd变量解析的bug,去扩展面板找到Python插件,更新到最新版本再试。

方法4:代码里手动添加模块路径

要是上面的方法都没用,直接在代码开头加几行,把当前文件所在目录加到Python的搜索路径里:

import sys
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

这样就算工作目录不对,Python也能找到当前文件夹里的模块。

方法5:检查终端默认工作目录

因为你用的是integratedTerminal,去看看VS Code的终端默认目录设置:

  • 按Ctrl+,打开设置
  • 搜索Terminal > Integrated > Cwd
  • 别让它强制设成${workspaceFolder},可以改成${fileDirname}或者留空

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:10:24