Python Pydub(WindowsError:[错误2]系统找不到指定的文件)
我在Windows和Linux中运行Pydub模块时遇到问题。当我尝试打开mp3文件时,如下所示:Python Pydub(WindowsError:[错误2]系统找不到指定的文件),python,file,mp3,pydub,ffmpeg,Python,File,Mp3,Pydub,Ffmpeg,我在Windows和Linux中运行Pydub模块时遇到问题。当我尝试打开mp3文件时,如下所示: from pydub import AudioSegment sound = AudioSegment.from_mp3("test.mp3") 控制台显示下一条消息: WindowsError:[错误2]系统找不到指定的文件 但是…我的文件(test.mp3)和脚本在同一个文件夹中,名称是正确的 为什么我会有这个问题?(在Linux中,出现相同的错误)确保已安装ffmpeg。你可以从我这里得到
from pydub import AudioSegment
sound = AudioSegment.from_mp3("test.mp3")
控制台显示下一条消息:
WindowsError:[错误2]系统找不到指定的文件
但是…我的文件(test.mp3)和脚本在同一个文件夹中,名称是正确的
为什么我会有这个问题?(在Linux中,出现相同的错误)确保已安装
ffmpeg
。你可以从我这里得到帮助
我能想到的另一件事是,ffmpeg
已安装并在您的路径中,但不在使用pydub
的进程路径中
如果这是错误的原因,则可以直接将绝对路径设置为ffmpeg
,如下所示:
import pydub
pydub.AudioSegment.ffmpeg = "/absolute/path/to/ffmpeg"
sound = AudioSegment.from_mp3("test.mp3")
尝试一下。在的较新版本中,您可以通过设置类属性转换器来指定可执行文件的绝对路径,例如:
from pydub import AudioSegment
AudioSegment.converter = "/usr/local/bin/ffmpeg"
在旧版本中,class属性过去是ffmpeg
,现在已不推荐使用。您需要:
1-从此处提供的Windows二进制文件下载并提取libav。()
2-将libav/bin文件夹添加到适用于MacOs和已编译Python的PATH envvar解决方案中
也许这个解决方案有点老套,不是最好的方法,但它实际上对我在MacOs上也有同样的问题。
它解决了python脚本无法访问系统$PATH变量时的问题。我必须这样做,因为我将python代码作为java程序的编译二进制文件运行,这意味着由于某些原因,MacOs系统上设置的system$PATH变量无法被编译的python代码访问
将此添加到python代码中:
“/usr/local/bin”
是MacOs的默认设置-如果您在其他位置安装了ffmpeg,请更改它
我从对这个问题的回答中得到了这个想法:另一种方法是将ffmpeg.exe、ffplay.exe放在jupyter笔记本的当前工作目录中,由于错误发生在anaconda环境中,因此此错误可能会持续存在。您可以通过从conda forge
安装ffmpeg
来解决此问题
进入anaconda提示符并键入:
conda install -c conda-forge ffmpeg
如果您可以将错误翻译为英语并编辑问题,则会很方便。test.mp3
必须位于运行脚本的目录中(import os;print(os.getcwd())
以显示它),而不是从脚本被翻译为.error translated(pss)的目录中。我在声音和脚本所在的文件夹中运行脚本…我有相同的错误请提供详细信息。python版本是什么?您已经安装了ffmpeg。谢谢pss!,问题是脚本中ffmpeg的绝对路径AudioSegment.ffmpeg
在新版本上不起作用,它似乎是AudioSegment.converter
在另一个答案中。非常感谢。我花了3天时间调试这个小错误。我正要放弃pydub。谢谢你的帮助。
conda install -c conda-forge ffmpeg