VS Code运行Python pygame代码出现No such file or directory报错如何解决
问题原因与解决步骤
- 第一步:确认运行时工作目录
VSCode默认运行Python代码的工作目录为当前打开的工作区根目录,而非.py文件所在的同级目录,这是和Eclipse运行表现不一致的核心原因。
先在你的代码最开头加入以下代码,打印当前实际工作目录:
import os print("当前工作目录:", os.getcwd())
运行后查看输出的路径,如果该路径和你的grass.png所在路径不一致,就会触发找不到文件的报错。
- 第二步:使用固定相对路径拼接方案(推荐,无环境依赖)
不要直接写硬编码的相对路径或绝对路径,通过Python内置的__file__变量获取当前脚本的真实路径,再拼接资源路径,不管在什么IDE运行都能正确找到文件:
import os import pygame # 获取当前py文件所在的绝对目录 base_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接图片的完整路径 grass_path = os.path.join(base_dir, "grass.png") # 加载图片 grass_img = pygame.image.load(grass_path).convert()
第三步:绝对路径报错的排查方案
如果填绝对路径仍然报错,基本是路径格式问题:- Windows系统下路径中的反斜杠需要转义,或者使用原始字符串前缀
r,比如正确写法是r"C:\Users\xxx\project\grass.png",不要直接写"C:\Users\xxx\project\grass.png",路径中的\n、\t等字符会被识别为转义符导致路径失效 - 复制的绝对路径可以直接粘贴到资源管理器地址栏,确认能直接打开对应的
grass.png文件,排除路径写错、文件后缀名被隐藏(比如实际是grass.png.txt)的问题
- Windows系统下路径中的反斜杠需要转义,或者使用原始字符串前缀
补充说明
你之前添加的系统PATH、Python PATH和资源文件加载没有关联:系统PATH是系统查找可执行程序的路径,Python PATH是Python导入第三方模块时的查找路径,都不会作用于本地资源文件的加载,不需要在这两个配置上做修改。
内容的提问来源于stack exchange,提问作者Luka Cronqvist
相关产品推荐
相关产品推荐

