Ошибка с LocalAudioFile (файл) возвращает OSError: [Errno 2] Нет такого файла или каталога

Очень похоже на вопрос здесь http://developer.echonest.com/forums/thread/3843#reply, у меня следующая ошибка:

Файл "/usr/local/lib/python2.7/dist-packages/echonest/remix/audio.py", строка 944, в init sampleRate=sampleRate, numChannels=numChannels) Файл "/usr /local/lib/python2.7/dist-packages/ehonest/remix/audio.py", строка 403, в файле init self.load() "/usr/local/lib/python2. 7/dist-packages/ehonest/remix/audio.py", строка 421, при загрузке numChannels=self.numChannels, sampleRate=self.sampleRate, verbose=self.verbose) Файл "/usr/local/lib/python2.7 /dist-packages/echonest/remix/support/ffmpeg.py", строка 91, в ffmpeg close_fds=(not win) File "/usr/lib/python2.7/subprocess.py", строка 710, в init errread, errwrite) Файл "/usr/lib/python2.7/subprocess.py", строка 1327, в _execute_child поднять child_exception OSError: [Errno 2] Нет такого файла или каталога

Я проверил права доступа к входным и выходным файлам, убедился, что оба файла и все связанные с ними пути к файлам существуют, и что у меня установлены все соответствующие инструменты Python. Первая подсказка заключается в том, что у Subprocess.py возникли проблемы. Глядя на ffmpeg.py в строке 88, я начал экспериментировать с вызовом функции Popen, чтобы понять, как и почему он ведет себя неправильно.

Решение:

Повозившись с файлом ffmpeg.py, я передал ввод в оболочку (shell=True вместо shell=False), что вызвало следующую ошибку:

check raise Run timeError(ffmpeg_install_instructions) RuntimeError: en-ffmpeg not found! Please make sure ffmpeg is installed and create a link as follows: sudo ln -s which ffmpeg /usr/local/bin/en-ffmpeg Alternatively, import echonest.remix.support.ffmpeg and modify ffmpeg.FFMPEG to name the appropriate binary.

Итак, чтобы доработать решение, вам нужно получить бинарный файл с https://ffmpeg.org/download.html#build-linux, что в Ubuntu 14.04 означает, что вам просто нужно:

sudo add-apt-repository ppa:mc3man/trusty-media
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install ffmpeg
sudo ln -s `which ffmpeg` /usr/local/bin/en-ffmpeg

Это должно решить эту проблему.


person beriukay    schedule 05.03.2016    source источник
comment
Хотя здорово, что вы хотите опубликовать свое решение, ваш вопрос не является подходящим местом для него. Если это хороший ответ на вопрос, который вы связали, ответьте на него там. Если это просто хороший ответ на вопрос здесь, разместите его как ответ на свой вопрос.   -  person zondo    schedule 05.03.2016
comment
Невозможно. Они закрыли комментарии на этом сайте и перешли на Stack Overflow, заявив, что все должно быть помечено как echonest. И у меня был тот же вопрос... так что я должен просто повторить вопрос своими словами?   -  person beriukay    schedule 05.03.2016
comment
да. Это было бы хорошо.   -  person zondo    schedule 05.03.2016


Ответы (1)


Думаю, я мог бы просто опубликовать связанный вопрос и поместить свой ответ здесь. Но, повторюсь, это была не проблема с существующим файлом, а проблема с неправильной установкой и настройкой ffmpeg. Установив ffmpeg и поставив правильную символическую ссылку, у меня все работает.

sudo add-apt-repository ppa:mc3man/trusty-media
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install ffmpeg
sudo ln -s `which ffmpeg` /usr/local/bin/en-ffmpeg
person beriukay    schedule 05.03.2016