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

脚本与资源同目录仍报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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:22:09