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

VS Code中使用../相对路径访问文件报FileNotFound错误如何解决

VS Code下Python相对路径报FileNotFound的解决方法

问题本质

这个报错和../、./的路径语法没有关系,核心原因是不同编辑器运行Python脚本时的当前工作目录(CWD) 规则不一样:

  • IDLE运行脚本时,默认将脚本文件自身所在的文件夹设为工作目录,所有相对路径都以这个文件夹为起点解析,所以你写的./images/ui/logo.png能正常找到文件
  • VS Code默认将你当前打开的工作区根目录(侧边栏资源管理器显示的最顶层文件夹)作为程序运行的工作目录,如果你的脚本存放在工作区的子文件夹里,相对路径的解析起点就和IDLE不一致,自然会触发找不到文件的错误。

可行解决方案

1. 锚定脚本目录写路径(最推荐,全环境兼容)

不要依赖运行环境的默认工作目录,直接以当前脚本文件的位置为起点拼接资源路径,不管在哪个编辑器、哪个目录下启动脚本都不会出错。
示例代码:

import os
import pygame

# 先拿到当前脚本所在文件夹的绝对路径
SCRIPT_FOLDER = os.path.dirname(os.path.abspath(__file__))
# 拼接logo路径,对应原写法里的./images/ui/logo.png
icon_path = os.path.join(SCRIPT_FOLDER, "images", "ui", "logo.png")
pygame.display.set_icon(pygame.image.load(icon_path))

如果要访问脚本所在目录之外的上级文件夹,直接在路径里加层级即可,对应原问题里../images/image.png的写法:

outer_img_path = os.path.join(SCRIPT_FOLDER, "..", "images", "image.png")
# 可选:把带../的路径转成规范的绝对路径,避免特殊场景下的解析问题
outer_img_path = os.path.normpath(outer_img_path)

2. 修改VS Code运行配置,对齐IDLE的工作目录规则

如果不想改动原有代码,可以调整VS Code的启动配置,让它和IDLE一样把脚本所在文件夹设为工作目录:

  • 打开左侧「运行和调试」面板,点击「创建launch.json文件」,选择对应的Python解释器
  • 在生成的配置项中新增"cwd": "${fileDirname}"字段,参考配置如下:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: 运行当前文件",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "cwd": "${fileDirname}"
        }
    ]
}

保存配置后,再通过VS Code的运行、调试按钮启动脚本,相对路径的解析逻辑就和IDLE完全一致。

3. 临时调整工作区层级

如果只是临时运行脚本不想改配置,可以直接通过VS Code的「文件-打开文件夹」功能,选中脚本所在的文件夹作为工作区根目录,此时默认工作目录就是脚本所在位置,原有相对路径可以直接生效。

注意:单纯依赖相对路径做资源定位的写法兼容性很差,除了编辑器差异,从命令行其他目录启动脚本、打包成exe后都可能出现路径错误,优先使用第一种锚定脚本目录的写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 07:24:36