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

未修改代码却触发Pygame报错:尝试访问无效地址

解决Pygame加载MP3时libmpg123.dll报错的建议

遇到这种代码没改动却突然炸锅的dll加载问题确实挺闹心的,我整理了几个针对性的排查和解决方向,你可以逐一试试:

  • 检查路径空格与字符串格式
    你的音频文件名带空格(background music.mp3),虽然Python理论上支持带空格的路径,但Windows环境下偶尔会出现解析异常。可以试试:

    • 把文件名改成无空格的形式,比如background_music.mp3,同时更新代码里的加载路径
    • 或者在代码里使用原始字符串格式:pygame.mixer.music.load(r'./sounds/background music.mp3')
  • 重新验证Pygame与libmpg123.dll的兼容性
    即便dll文件存在,也可能出现损坏、版本不匹配的情况:

    1. 先完全卸载当前Pygame:pip uninstall pygame
    2. 重新安装适配你Python版本的Pygame:pip install pygame
      注意要确保Python和Pygame的位数一致(比如都是64位),避免dll位数不兼容导致的地址访问错误。
  • 确认脚本运行的工作目录
    有时候IDE或终端的工作目录不是项目根目录,导致相对路径找不到文件。可以在加载音频前添加代码打印当前工作目录:

    import os
    print(os.getcwd())
    

    如果输出不是你的项目根目录,要么在运行脚本前切换到正确目录,要么改用音频文件的绝对路径加载。

  • 排查文件权限或dll完整性

    • 右键点击Pygame安装目录中的libmpg123.dll,检查“安全”选项卡下当前用户是否拥有读取权限
    • 可以尝试将该dll复制到你的项目sounds目录下,临时测试是否能正常加载(不推荐长期这么做,但能快速排查问题)
  • 验证音频文件本身是否损坏
    虽然昨天还能正常运行,但不排除音频文件意外损坏的可能:

    • 用本地播放器打开background music.mp3,确认能正常播放
    • 换一个已知可用的MP3文件替换,测试是否还会出现相同报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:04:45