Python使用pydub拆分音频触发FileNotFoundError报错求助
报错根因
pydub本身不具备音频编解码能力,所有音频格式的读写都依赖ffmpeg组件,你看到的警告和最终FileNotFoundError是因为pydub无法在系统默认路径、环境变量路径中找到ffmpeg、ffprobe可执行文件,单纯更新ffmpeg但未配置路径关联的话无法解决问题。
可行解决方案
- 方案1:代码内直接指定ffmpeg路径(无需改系统配置,最快捷)
在调用from_mp3方法前,显式指定本地ffmpeg和ffprobe的可执行文件绝对路径,示例代码如下:
from pydub import AudioSegment # 将下方路径替换为你本地ffmpeg安装目录下bin文件夹内的对应exe路径 AudioSegment.converter = r"C:\tools\ffmpeg\bin\ffmpeg.exe" AudioSegment.ffprobe = r"C:\tools\ffmpeg\bin\ffprobe.exe" # 原有加载音频的代码 audio_file = AudioSegment.from_mp3(abs_path_file)
- 方案2:配置系统环境变量(一劳永逸,所有调用ffmpeg的程序都能识别)
- 找到本地ffmpeg解压目录下的
bin文件夹完整路径,确认文件夹内存在ffmpeg.exe、ffprobe.exe两个文件 - 打开「高级系统设置」-「环境变量」,在系统变量的
Path条目下新增刚才复制的bin文件夹路径,保存配置 - 重启你正在使用的Python IDE、命令行终端,再运行原有代码即可
- 找到本地ffmpeg解压目录下的
- 前置校验:确认ffmpeg本身可用
打开系统cmd窗口,输入ffmpeg -version回车,如果提示“不是内部或外部命令”,说明你之前的ffmpeg安装包损坏、解压不完整,重新下载Windows版本的完整编译包,解压到无中文、无特殊空格的目录下再做上述配置即可。
注意:ffmpeg存放路径、待处理的MP3文件路径都不要包含中文字符、全角特殊符号,否则可能出现额外的路径识别错误。
内容的提问来源于stack exchange,提问作者Luke
相关产品推荐
相关产品推荐

