pydub调用AudioSegment报ffprobe PermissionError[Errno13]问题求助
问题根因
- 你通过pip安装的
ffmpeg、ffprobe是第三方Python封装包,并非pydub依赖的原生FFmpeg命令行可执行程序,pydub无法正常调用这类封装包,才会先后触发导入错误、ffprobe权限拒绝错误。 - 你之前配置的路径大概率指向pip安装的第三方包目录/上层文件夹,而非ffmpeg、ffprobe二进制可执行文件的具体路径,因此后续的权限修改操作完全没有作用到pydub实际要调用的程序上,那个找不到ffprobe的运行时警告也正是路径配置无效导致的。
解决步骤
- 先卸载冲突的pip版封装包,避免和原生FFmpeg程序产生命名冲突:
pip uninstall -y ffmpeg ffprobe - 安装原生FFmpeg套件,你使用的是Anaconda环境,直接通过conda安装可以自动配置权限、避免路径问题:
安装完成后在终端执行以下命令验证安装结果,正常输出版本信息即说明安装正确:conda install -c conda-forge ffmpegffmpeg -version ffprobe -version - 获取可执行文件的准确路径,在终端执行以下命令:
注意:以上命令输出的是二进制可执行文件的完整绝对路径,不是上层文件夹路径,常见输出为which ffmpeg which ffprobe/opt/anaconda3/bin/ffmpeg、/opt/anaconda3/bin/ffprobe,之前填写文件夹路径的操作是无效的。 - 在代码中替换为正确的路径配置,示例如下:
from pydub import AudioSegment # 将路径替换为上一步which命令输出的实际路径 AudioSegment.converter = "/opt/anaconda3/bin/ffmpeg" AudioSegment.ffmpeg = "/opt/anaconda3/bin/ffmpeg" AudioSegment.ffprobe = "/opt/anaconda3/bin/ffprobe" # 正常执行音频读取即可 audio = AudioSegment.from_file("your_audio.mp3")
异常排查
- 如果完成以上操作后仍有权限报错,直接在终端给对应二进制文件授予执行权限即可,无需在Python代码内调用chmod修改权限:
chmod 755 /opt/anaconda3/bin/ffmpeg chmod 755 /opt/anaconda3/bin/ffprobe - 待路径配置正确后,之前提示的找不到ffprobe的运行时警告会自动消失。
内容的提问来源于stack exchange,提问作者AYA
相关产品推荐
相关产品推荐

