就像这里的问题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/echonest/remix/audio.py”,第 403 行,在init self.load() 文件“/usr/local/lib/python2.7/dist-packages/echonest/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) 文件 "/usr/lib/python2.7/subprocess.py",第 710 行,在init errread,errwrite)文件“/usr/lib/python2.7/subprocess.py”,第 1327 行,在 _execute_child raise child_exception OSError: [Errno 2] No such file or directory
我检查了输入和输出文件的权限,确保两个文件和所有相关的文件路径都存在,并且我安装了所有相关的 python 工具。第一个线索是 Subprocess.py 有问题。查看第 88 行的 ffmpeg.py,我开始使用 Popen 函数调用来了解它是如何以及为什么行为不端。
解决方案:
在弄乱了 ffmpeg.py 文件之后,我将输入通过管道传输到 shell(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
那应该可以立即解决这个问题。