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

Python使用pydub播放mp3时报PermissionError: [Errno 13]权限拒绝

错误根因

该PermissionError和管理员运行权限无关,是Windows系统的特性导致:Python在Windows下创建的临时文件默认是独占访问模式,pydub自带的play()方法实现中,创建临时wav文件后未关闭句柄就尝试二次写入,触发权限拒绝规则。

解决方案

  • 方案1:替换播放逻辑,使用simpleaudio配合pydub播放(最稳定)
    先安装依赖:

    pip install simpleaudio
    

    替换原有代码为:

    from pydub import AudioSegment
    import simpleaudio as sa
    
    song = AudioSegment.from_file("C:\\Users\\ryanc\\Music\\rr.mp3")
    playback = sa.play_buffer(song.raw_data, num_channels=song.channels, bytes_per_sample=song.sample_width, sample_rate=song.frame_rate)
    playback.wait_done()
    
  • 方案2:升级pydub到最新版本,该问题已在后续版本修复
    执行升级命令:

    pip install --upgrade pydub
    
  • 方案3:手动导出到项目目录下的固定文件播放,规避系统临时目录权限限制
    示例代码:

    from pydub import AudioSegment
    from pydub.playback import play
    import os
    
    song = AudioSegment.from_file("C:\\Users\\ryanc\\Music\\rr.mp3")
    # 导出到当前项目目录的临时文件,不会触发系统临时目录的独占限制
    temp_path = "./temp_play.wav"
    song.export(temp_path, format="wav")
    temp_song = AudioSegment.from_file(temp_path)
    play(temp_song)
    # 播放完成后删除临时文件
    if os.path.exists(temp_path):
        os.remove(temp_path)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:27:03