0

Я сравниваю wav-файлы, этот скрипт работал нормально, пока я не перешел на LMDE Betsy. Функция, которая дает мне мою ошибку является:Python - audiodiff не может найти файл, который существует

def already_valid (arg_wav): 
    for w in wavs: 
     size_arg = getsize(arg_wav.src_path) 
     size_w = getsize(w.src_path) 
     if 0 < size_w == size_arg and w.src_path != arg_wav.src_path: 
      print arg_wav.src_path, "::", w.src_path 
      if audiodiff.audio_equal(arg_wav.src_path, w.src_path): 
       return True 
    return False 

Моя первая мысль была, что он пытается открыть тот же файл дважды, но w.src_path != arg_wav.src_path следует учитывать, что. Я получаю этот выход:

С моей функции:

/home/will/Desktop/soundfiles/TITAN Recordings/6648/hold1_por.wav :: /home/will/Desktop/soundfiles/TITAN Recordings/6677/hold1_por.wav 

TraceBack:

Traceback (most recent call last): 
    File "call_diff.py", line 145, in <module> 
    verified += handle_wav(p) 
    File "call_diff.py", line 73, in handle_wav 
    if already_valid(curr_wav): 
    File "call_diff.py", line 96, in already_valid 
    if audiodiff.audio_equal(arg_wav.src_path, w.src_path): 
    File "/usr/local/lib/python2.7/dist-packages/audiodiff/__init__.py", line 51, in audio_equal 
    return checksum(name1, ffmpeg_bin) == checksum(name2, ffmpeg_bin) 
    File "/usr/local/lib/python2.7/dist-packages/audiodiff/__init__.py", line 86, in checksum 
    stderr=subprocess.PIPE) 
    File "/usr/lib/python2.7/subprocess.py", line 710, in __init__ 
    errread, errwrite) 
    File "/usr/lib/python2.7/subprocess.py", line 1335, in _execute_child 
    raise child_exception 
OSError: [Errno 2] No such file or directory 

Что так странно, что он работал вчера на Linux Mint 17,1 и на ОС Windows 7. это какая-то странная конвенция Debian, о которой я не знаю? Да, я дважды проверял и оба файла существуют в описанном пути.

+1

Там есть шанс, что это не в состоянии найти FFmpeg, а не файлов. Является ffmpeg в вашей PATH? – Ken

+0

Конечно, я забыл установить ffmpeg на мой новый монетный двор! Спасибо, теперь он работает, есть ли способ сказать из трассировки, что это означает, что он не может найти 'ffmpeg_bin', а не один из моих файлов? – Will

+0

От того, что там, не совсем. Я догадался, потому что увидел «ffmpeg_bin». Вы можете открыть audiodiff '__init __. Py' и проверить линию 86, чтобы увидеть, что она на самом деле там делает. – Ken

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^