Pydub from_mp3 gives [Errno 2] No such file or directory

ぃ、小莉子 提交于 2020-01-03 09:24:06

问题


I find myself in front of a wall here, simply trying to load an audio file into pydub for converting it keeps on throwing a "[Errno 2] No such file or directory" error.

Naturally I have spent way too much time making sure the paths were valid, tried relative and absolute paths and confirmed that the python method open() was working fine with the exact same path, which it is.

I'm working in ipython 3.2 with python 2.7 via the anaconda 2.3 distrib on ubuntu.

from pydub import AudioSegment
sound = AudioSegment.from_mp3("/absolute/path/to/file.mp3")

Also tried without spaces in the path as it sometimes is an issue. Here's the full error log:

---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
<ipython-input-15-8b1ec013ca8e> in <module>()
      1 import pydub
----> 2 sound = pydub.AudioSegment.from_mp3("/absolute/path/to/file.mp3")

/home/ludo/anaconda3/envs/python2/lib/python2.7/site-packages/pydub/audio_segment.pyc in from_mp3(cls, file)
    421     @classmethod
    422     def from_mp3(cls, file):
--> 423         return cls.from_file(file, 'mp3')
    424 
    425     @classmethod

/home/ludo/anaconda3/envs/python2/lib/python2.7/site-packages/pydub/audio_segment.pyc in from_file(cls, file, format, **kwargs)
    404         log_conversion(conversion_command)
    405 
--> 406         p = subprocess.Popen(conversion_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    407         p_out, p_err = p.communicate()
    408 

/home/ludo/anaconda3/envs/python2/lib/python2.7/subprocess.pyc in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags)
    708                                 p2cread, p2cwrite,
    709                                 c2pread, c2pwrite,
--> 710                                 errread, errwrite)
    711         except Exception:
    712             # Preserve original exception in case os.close raises.

/home/ludo/anaconda3/envs/python2/lib/python2.7/subprocess.pyc in _execute_child(self, args, executable, preexec_fn, close_fds, cwd, env, universal_newlines, startupinfo, creationflags, shell, to_close, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite)
   1333                         raise
   1334                 child_exception = pickle.loads(data)
-> 1335                 raise child_exception
   1336 
   1337 

OSError: [Errno 2] No such file or directory

Am I blind to something really simple here or...?

Edit: I have also tried to pass the path as raw text r"/absolute/path/to/file.mp3" as Vaulstein inquired - which gives me the same error.


回答1:


The exceptions doesn't have anything todo with the filename you provide. Looking at the traceback it's the conversion_command for the subprocess.Popen call which can't be found. This in turn may explain the warning that neither avconv nor ffmpeg could be found. The solution should be installing the libav-tools package for with sudo apt-get install libav-tools in a console.



来源:https://stackoverflow.com/questions/34196195/pydub-from-mp3-gives-errno-2-no-such-file-or-directory

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