2011-02-09 104 views
3

我需要为研究项目安装Python模块audiolab,并且当我设法安装它并获取要在Python shell中导入的模块时,它会在调用时返回一个错误模块中最基本的功能之一,wavread()。Python模块audiolab在调用函数时返回错误

我主要使用Python2.7.1,虽然我尝试回溯并为Python2.6.6安装audiolab,但只有在导入并调用wavread()函数后才能找到相同的错误消息。

我的操作系统是带有intel处理器的Mac OS X 10.5.8。

通常这是怎么一回事呢:

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

回溯(最近通话最后一个):

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的是一个简单的包装器)点子,似乎安装很好,没有错误。然后,我尝试在终端中使用命令python setup.py install从tar.gz文件安装audiolab。这是在文档中指示的,找到here标题'build'

该文档还谈到在某些情况下需要做一个'site.cfg'文件,这是从我在一些谷歌搜索后看到的,只有确实适用于Windows用户,但我不确定这一点。

任何你可以解决我的问题的灯将非常感谢!

回答

4

audiolab文档有点缺乏,但wavread()需要一个输入文件。在你的代码中,那个输入是test.wav。如果它不存在于工作目录中(通常是python脚本的位置),则需要提供文件的完整路径。

+0

感谢您的快速回答,这实际上解决了我的问题!出于某种原因,我只是假定该软件包会将测试文档放在适当的文件夹中,将它们作为输入读取,但事实并非如此。 另外,我应该补充说,在运行任何程序之前,当前的工作目录是我的已安装模块的其余部分找到的audiolab文件夹。但是,运行程序后,工作目录会移动,因此无法再以交互模式访问模块目录中的文件。以防将来有人遇到这个问题...... – 2011-02-10 20:26:13

相关问题