Модуль audiolab Python возвращает ошибку при вызове функции

Мне нужно установить аудиолабораторию модуля Python для исследовательского проекта, и хотя мне удалось установить его и получить модуль для импорта в оболочку Python, он возвращает ошибку при вызове одной из самых основных функций в модуле, wavread( ).

В основном я использую Python2.7.1, хотя я пытался вернуться и установить audiolab для Python2.6.6, только чтобы найти то же сообщение об ошибке после импорта и вызова функции wavread().

Моя операционная система — Mac OS X 10.5.8 с процессором Intel.

Обычно это происходит так:

import numpy                            
import scipy                           
import scikits.audiolab as audio                           
x, fs, nbits = audio.wavread('test.wav')                           

Traceback (последний последний вызов):

  File "<pyshell#3>", line 1, in <module>                           
    x, fs, nbits = audio.wavread('test.wav')                           
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scikits.audiolab-0.11.0-py2.7-macosx-10.3-                           fat.egg/scikits/audiolab/pysndfile/matapi.py", line 91, in basic_reader                           
    hdl = Sndfile(filename, 'r')                           
  File "_sndfile.pyx", line 488, in scikits.audiolab.pysndfile._sndfile.Sndfile.__init__ (scikits/audiolab/pysndfile/_sndfile.c:4251)                                                      
IOError: error while opening test.wav                           
    ->error while opening file test.wav                           
    -> System error : No such file or directory.                           

Я установил библиотеку libsndfile (которая, как я считаю, audiofile — просто оболочка), используя pip, и, похоже, она установилась без ошибок. Затем я попытался установить audiolab из файла tar.gz, используя команду python setup.py install в Терминале. Это указано в документации, найденной здесь под заголовком "сборка"

В документации также говорится о том, что в некоторых случаях необходимо создать файл «site.cfg», который, судя по тому, что я увидел после некоторого поиска в Google, действительно применим только к пользователям Windows, хотя я не уверен в этом.

Буду очень признателен за любой свет, который вы могли бы пролить на мою проблему!


person Anteater Andy    schedule 09.02.2011    source источник


Ответы (1)


Документации audiolab немного не хватает, но wavread() требуется входной файл. В вашем коде этот ввод равен test.wav. Если его нет в рабочем каталоге (обычно это местонахождение вашего скрипта Python), вам необходимо указать полный путь к файлу.

person Velociraptors    schedule 09.02.2011
comment
Спасибо за быстрый ответ, который действительно решил мою проблему! По какой-то причине я просто предположил, что пакет поместит тестовые документы в нужную папку, чтобы прочитать их в качестве входных данных, хотя это не так. Кроме того, я должен добавить, что до запуска каких-либо программ текущим рабочим каталогом была папка audiolab, найденная с остальными моими установленными модулями. Однако после запуска программы рабочий каталог перемещается, поэтому файлы в каталоге модуля больше не доступны в интерактивном режиме. На всякий случай, если кто-то столкнется с этой проблемой в будущем... - person Anteater Andy; 10.02.2011