如何在Pygame中从其他文件夹导入图片?解决文件找不到错误
解决Pygame加载图片的路径问题
问题原因
你用../graphics/test/rock.png出错,大概率是因为运行脚本时的工作目录不是Code文件夹。比如如果在Game目录下执行python Code/Main.py,../会指向Game的上级目录,而非Game本身,自然找不到graphics文件夹。
简便解决方案
方案1:基于脚本文件路径构建(推荐,不受运行目录影响)
利用Python的文件路径工具,根据Main.py的位置自动计算图片路径,不管在哪里运行都能生效:
用os模块(兼容所有Python版本):
import os import pygame # 获取Main.py所在的Code目录绝对路径 code_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接并标准化图片路径(自动处理../) rock_path = os.path.normpath(os.path.join(code_dir, "../graphics/test/rock.png")) self.image = pygame.image.load(rock_path).convert_alpha()
用pathlib(Python3.4+,更简洁):
from pathlib import Path import pygame # 获取Game文件夹的绝对路径(Main.py的父目录的父目录) game_dir = Path(__file__).parent.parent rock_path = game_dir / "graphics" / "test" / "rock.png" self.image = pygame.image.load(rock_path).convert_alpha()
方案2:固定工作目录运行
每次运行脚本前,先切换到Game目录,然后用更短的相对路径:
- 终端中进入Game目录:
cd /Users/(你的名字)/Documents/PythonProjects/Games/Game - 运行脚本:
python Code/Main.py - 加载图片时直接写:
self.image = pygame.image.load("graphics/test/rock.png").convert_alpha()
内容的提问来源于stack exchange,提问作者Quantum
相关产品推荐
相关产品推荐

