Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pydub(WindowsError:[错误2]系统找不到指定的文件)_Python_File_Mp3_Pydub_Ffmpeg - Fatal编程技术网

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

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。你可以从我这里得到

我在Windows和Linux中运行Pydub模块时遇到问题。当我尝试打开mp3文件时,如下所示:

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