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

如何在Python中使用Pygame加载非工作目录下的图片?

问题根因

你错误使用os.path.basename()处理了图片的完整路径,该函数只会提取路径末尾的文件名w_king.png,程序运行时默认只会在当前工作目录查找该文件,自然找不到存放在pieces子目录下的图片。

解决方案

方案1:直接使用完整路径加载

删除os.path.basename()的包裹即可正常加载:

king=pygame.image.load(r"C:\Users\tiago\PycharmProjects\chess\pieces\w_king.png")
pos = [4, 0]
coords = translate_coord(pos)
display.blit(king, coords)
pygame.display.flip()

方案2:使用相对路径(更推荐)

硬编码绝对路径在更换设备运行时容易失效,推荐通过当前脚本路径动态拼接资源路径,兼容性更强:

import os
# 假设当前运行的脚本存放在 chess 项目根目录下
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
# 拼接棋子图片路径
king_path = os.path.join(BASE_DIR, "pieces", "w_king.png")

king = pygame.image.load(king_path)
pos = [4, 0]
coords = translate_coord(pos)
display.blit(king, coords)
pygame.display.flip()
额外检查项
  • 确认w_king.png文件确实存放在chess/pieces目录下,没有被移动、删除或重命名
  • 确认文件名、目录名拼写完全正确,Linux、Mac系统对路径大小写敏感,Windows系统也建议保持大小写一致避免异常

内容的提问来源于stack exchange,提问作者Tiago Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:36:05