Pydub (WindowsError: [Error 2] The system can not find the file specified)

你。 提交于 2019-12-06 02:49:02

问题


I have a problem with Pydub module running in Windows and Linux. When I try open a mp3 file thus:

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

Console show me the next message:

WindowsError: [Error 2] The system can not find the file specified

But...I have the file (test.mp3) in the same folder that the script, the name is correct.

Why I have this problem? (In Linux, have the same error)


回答1:


Make sure that you have ffmpeg http://www.ffmpeg.org/ installed. You can get help from this official page.

Other thing that I can think of is that ffmpeg is installed and is in your path but not in the path of the process using pydub.

If this is the reason for the error, then you can set the absolute path to ffmpeg directly like shown below:

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

Give this a try.




回答2:


In newer versions of pydub, you can specify the absolute path to your ffmpeg executable by setting the class attribute converter, e.g.:

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

In older versions the class attribute used to be ffmpeg, which is deprecated now.




回答3:


you need to this:

1- Download and extract libav from Windows binaries provided here. (http://builds.libav.org/windows/)

2- Add the libav /bin folder to your PATH envvar




回答4:


In jupyter notebook this error could persist since the error is with anaconda environment. You can solve this by installing ffmpeg from conda-forge

Got to anaconda prompt and type:

conda install -c conda-forge ffmpeg



回答5:


Solves the problem if the python script cannot access the system $PATH variable. I had to use this way because I run my python code as a compiled binary from a java program which means for some reasons that the system $PATH variable set on my MacOs system cannot be accessed.

Add this to your python code:

import os
os.environ["PATH"] += os.pathsep + '/usr/local/bin'

'/usr/local/bin' is the default for MacOs - please change it if you installed ffmpeg in a different location.

I got the idea from an answer to that question: how do I modify the system path variable in python script?




回答6:


The other way is put ffmpeg.exe,ffplay.exe in the current working directory



来源:https://stackoverflow.com/questions/22284461/pydub-windowserror-error-2-the-system-can-not-find-the-file-specified

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!