Pydub (WindowsError: [错误 2] 系统找不到指定的文件)

23 投票
9 回答
39863 浏览
提问于 2025-04-17 21:31

我在Windows和Linux上使用Pydub模块时遇到了一个问题。当我尝试这样打开一个mp3文件:

from pydub import AudioSegment
sound = AudioSegment.from_mp3("test.mp3")

控制台给我显示了下面的信息:

WindowsError: [Error 2] 系统找不到指定的文件

但是...我在和脚本同一个文件夹里有这个文件(test.mp3),名字也没错。

为什么会出现这个问题呢?(在Linux上也有同样的错误)

9 个回答

3

这个解决办法其实很简单,你只需要把 ffmpeg.exe、ffprobe.exe 和 ffplay.exe 这三个文件放到你的脚本目录里。你可以从 FFMPEG 的下载页面下载这些 exe 文件,然后从 bin 文件夹里找到它们。

15

在新版的 中,你可以通过设置类属性 converter 来指定你电脑上 程序的绝对路径,比如:

from pydub import AudioSegment
AudioSegment.converter = "/usr/local/bin/ffmpeg"

在旧版中,类属性是 ffmpeg,但现在这个用法已经不推荐了。

18

另一种方法是把 ffmpeg.exe 和 ffplay.exe 放在当前的工作目录里。

20

在Jupyter Notebook中,这个错误可能会一直存在,因为问题出在Anaconda环境里。你可以通过从conda-forge安装ffmpeg来解决这个问题。

打开Anaconda提示符,然后输入:

conda install -c conda-forge ffmpeg
18

确保你已经安装了 ffmpeg,可以去这个网站下载:http://www.ffmpeg.org/。如果需要帮助,可以参考这个官方页面

还有一种可能是 ffmpeg 已经安装了,并且在你的系统路径中,但在使用 pydub 的程序路径中却找不到它。

如果是这个原因导致出错,你可以直接设置 ffmpeg 的绝对路径,像下面这样:

import pydub
pydub.AudioSegment.ffmpeg = "/absolute/path/to/ffmpeg"
sound = AudioSegment.from_mp3("test.mp3")

试试看这个方法。

撰写回答