2014-04-13 79 views
2

所以有人写了一个笑话陷阱脚本(如'陷阱音乐'),我不能得到它的工作。为什么Python不能找到我的文件?

​​

然而,尽管该文件夹看起来像这样

ls -l 
total 14288 
-rwxrwxrwx 1 ________ ________ 7295612 Mar 2 2008 Chicago.mp3 
[email protected] 1 ________ ________  1074 Apr 12 17:00 LICENSE 
[email protected] 1 ________ ________  2871 Apr 12 17:00 README.md 
[email protected] 1 ________ ________  6 Apr 12 17:00 requirements.txt 
[email protected] 48 ________ ________  1632 Apr 12 17:00 samples 
-rwxr-xr-x 1 ________ ________  2923 Apr 12 17:00 trapifier.py 

此命令总是导致[错误2]没有这样的文件或目录

./trapifier.py Chicago.mp3 Chiraq.mp3 

python trapifier.py Chicago.mp3 Chiraq.mp3 

甚至

./trapifier.py /full/path/to/Chicago.mp3 Chiraq.mp3 

什么给?我觉得在某个地方有新手的错误。

完整的错误消息的要求:脚本

Traceback (most recent call last): 
    File "./trapifier.py", line 89, in <module> 
    overlay(parse()) 
    File "./trapifier.py", line 32, in parse 
    base_track = pydub.AudioSegment.from_mp3(inputfile) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydub/audio_segment.py", line 297, in from_mp3 
    return cls.from_file(file, 'mp3') 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydub/audio_segment.py", line 284, in from_file 
    subprocess.call(convertion_command, stderr=open(os.devnull)) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 493, in call 
    return Popen(*popenargs, **kwargs).wait() 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 679, in  __init__ 
    errread, errwrite) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1249,  in _execute_child 
    raise child_exception 
OSError: [Errno 2] No such file or directory 

源在https://github.com/japesinator/trapifier.py

托管我把所有需要的库(argparse,pydub,操作系统,随机)。

第一个有用的编辑:似乎pydub.AudioSegment未能加载是罪魁祸首。然而,事情变得陌生。在Python端我能做

from pydub import AudioSegment 

但我得到一个当我做这样的模块错误

进口pydub.AudioSegment

+0

你明确地尝试过一个完整的路径到你的mp3文件吗?像'C:\ User \ Music \ Chicago.mp3' – CoryKramer

+2

什么是实际的错误信息?请记住,可能没有人对此特定脚本有经验,您是否可以挖掘出实际尝试加载文件的代码? – SpoonMeiser

+0

'python trapifier.py ./Chicago.mp3。/ Chiraq.mp3'会发生什么? – jmunsch

回答

3

这是很常见的pydub无法找到其用于解码的ffmpeg并编码mp3文件(以及所有其他非波形格式)。如果您已经安装了FFmpeg的,它仍然没有工作,就可以明确地告诉pydub哪里可以找到它,像这样:

from pydub import AudioSegment 
AudioSegment.ffmpeg = "/path/to/ffmpeg" 

您也可以找到我们getting ffmpeg set up docs有用= d

编辑 - 不得已的选择 :如果尽管尽了最大努力,您仍无法让pydub找到ffmpeg,您可以在将所有文件传递到pydub之前将所有内容转换为波形格式。这是肯定的最后一招,但它会绕过ffmpeg问题,因为pydub本身支持wave。

+0

这个解决方案并不适合我,所以我进一步调查了一下[这里](https://github.com/jiaaro/pydub/issues/62),现在应该使用AudioSegment.converter而不是AudioSegment.ffmpeg。 –

相关问题