VS Code运行报FileNotFoundError找不到文件,同代码IDLE运行正常如何修复
报错核心原因
该问题并非文件丢失或路径书写错误,本质是不同运行环境的当前工作目录(CWD) 逻辑差异导致的:
- IDLE运行Python脚本时,会自动将工作目录定位到当前加载的脚本所在文件夹,因此使用相对路径引用同目录资源时,可以正常匹配到目标文件。
- VS Code的Python扩展默认运行配置,会把工作目录设置为VS Code当前打开的项目根路径。从报错信息可见,你运行代码时的终端启动路径为
PS C:\Users\liqin>,并非脚本实际存放的c:\Users\liqin\Desktop\py\pygame\space invader\路径,因此程序会尝试从C:\Users\liqin\下查找alien.png文件,自然触发文件不存在的报错。
对应解决方法
- 调整VS Code运行配置匹配IDLE运行逻辑
打开VS Code设置面板,搜索Python > Terminal: Execute In File Dir并勾选该选项。配置生效后,每次运行Python脚本时,内置终端会自动将工作目录切换到当前运行脚本的所在文件夹,和IDLE的运行逻辑完全对齐。 - 代码层面做路径兼容(推荐,全环境无适配问题)
不再依赖运行环境的工作目录设置,通过脚本自身路径拼接资源的绝对路径,不管用什么运行环境都不会出现路径匹配错误,修改方式如下:import os # 读取当前脚本的绝对路径根目录 BASE_PATH = os.path.dirname(os.path.abspath(__file__)) # 拼接资源文件的完整绝对路径 alien_img_full_path = os.path.join(BASE_PATH, 'alien.png') icon = pygame.image.load(alien_img_full_path) - 临时手动调整终端路径
每次运行代码前,先在VS Code内置终端执行切换目录命令,进入脚本所在的文件夹后再启动Python脚本即可正常运行。该方法需要每次手动操作,不适合长期使用。
内容的提问来源于stack exchange,提问作者Adam Li
相关产品推荐
相关产品推荐

