脚本与资源同目录仍报File not found error的技术求助
解决Pygame资源读取的File Not Found Error问题
问题核心是脚本运行时的工作目录并非脚本所在目录,而是你启动Python时的当前路径(此处为C:\Users\xxx),导致相对路径指向了错误位置。以下两种方案适配团队跨环境使用:
方案1:切换工作目录到脚本所在路径
先将Python工作目录切换至脚本所在文件夹,后续所有相对路径都会基于该目录解析:
import os import pygame # 获取当前脚本的绝对目录 script_dir = os.path.dirname(os.path.abspath(__file__)) # 切换工作目录 os.chdir(script_dir) # 正常加载资源 background = pygame.image.load('Art/base_vision.jpg') window_icon = pygame.image.load('Art/window_icon.png')
方案2:直接构造资源的绝对路径
不修改工作目录,通过拼接脚本路径与资源相对路径,生成资源的绝对路径:
import os import pygame script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接资源路径 background_path = os.path.join(script_dir, 'Art', 'base_vision.jpg') background = pygame.image.load(background_path) window_icon_path = os.path.join(script_dir, 'Art', 'window_icon.png') window_icon = pygame.image.load(window_icon_path)
优化建议
封装工具函数简化资源路径获取,方便团队复用:
import os def get_resource_path(*path_parts): """生成基于脚本目录的资源绝对路径""" script_dir = os.path.dirname(os.path.abspath(__file__)) return os.path.join(script_dir, *path_parts) # 使用示例 import pygame background = pygame.image.load(get_resource_path('Art', 'base_vision.jpg'))
注意事项
- 确保团队成员项目结构一致:
Art文件夹必须与脚本处于同一目录 - 禁止使用硬编码绝对路径(如
c:/Users/xxx/Desktop/Game/Pygame test/Art/...),避免其他成员运行报错
内容的提问来源于stack exchange,提问作者Mai Blair Wang
相关产品推荐
相关产品推荐

