code runner 报“no such file or directory”主因是工作目录错配:默认以项目根目录为 cwd,而非当前文件所在目录;需启用 "code-runner.filedirectoryascwd": true 并配合 "code-runner.runinterminal": true,调试则须在 launch.json 中设 "cwd": "${filedirname}"。

VSCode 报 No such file or directory,90% 不是代码写错了,而是工作目录(cwd)和你代码里写的相对路径根本对不上——比如 open("config.json") 在当前文件夹下明明存在,但 VSCode 却去项目根目录甚至用户主目录里找。
为什么 Code Runner 一按就炸,终端里 cd 进去却能跑?
Code Runner 默认以项目根目录为工作目录,而不是你正在编辑的 .py 或 .cpp 文件所在目录。它不看你在哪打开的文件,只认 ${workspaceFolder}。
- 必须在设置中启用
"code-runner.fileDirectoryAsCwd": true,否则./data.csv永远解析失败 - 同时建议开启
"code-runner.runInTerminal": true,避免集成终端缓存旧cwd导致行为不一致 - 这个设置只影响 Code Runner(Ctrl+Alt+N),不影响调试或手动终端命令
调试(F5)时 cwd 怎么对齐当前文件?
调试走的是 launch.json,和 Code Runner 完全无关。不改这里,断点调试照样找不到文件。
- 确保你用的是「文件 → 打开文件夹」加载项目,否则
${workspaceFolder}可能为空 - 在
.vscode/launch.json的configurations里加"cwd": "${fileDirname}" - 别写成
"cwd": "./src"—— 这是以工作区根为基准的相对路径,不是当前文件位置 - 完整片段示例:
{ "name": "Python: Current File", "type": "python", "request": "launch", "cwd": "${fileDirname}", "program": "${file}", "console": "integratedTerminal" }
中文路径报错?光改 cwd 不够
即使 cwd 对了,Windows 下中文路径仍可能触发 FileNotFoundError,本质是 Python 启动时用 GBK 解码了 VSCode 传来的 UTF-8 路径字节串。
- 必须在
launch.json的env字段中配齐三项:PYTHONIOENCODING、PYTHONUTF8、PYTHONPATH -
"PYTHONIOENCODING": "utf-8":防止 print 输出乱码,也统一 IO 编码视角 -
"PYTHONUTF8": "1":强制 Python 3.7+ 忽略系统 locale,所有路径操作直解 UTF-8 -
"PYTHONPATH": "${workspaceFolder}":避免from utils import xxx因路径拼接二次失败
最常被忽略的一点:${fileDirname} 和 ${workspaceFolder} 是两个变量,一个指向文件所在目录,一个指向你打开的文件夹根目录——混用就会在多层子目录结构里掉进路径陷阱。











