1

我一直无法scikits.audiolab在 OS X 上工作。我尝试过从easy_install源代码构建,但都给了我同样的错误:

----> 1 import scikits.audiolab

/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scikits.audiolab-0.11.0-py2.6-macosx-10.3-fat.egg/scikits/audiolab/__init__.py in <module>()
     23 __version__ = _version
     24 
---> 25 from pysndfile import formatinfo, sndfile
     26 from pysndfile import supported_format, supported_endianness, \
     27                       supported_encoding, PyaudioException, \

/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scikits.audiolab-0.11.0-py2.6-macosx-10.3-fat.egg/scikits/audiolab/pysndfile/__init__.py in <module>()
----> 1 from _sndfile import Sndfile, Format, available_file_formats, \
      2         available_encodings, sndfile_version
      3 from compat import formatinfo, sndfile, PyaudioException, PyaudioIOError
      4 from compat import supported_format, supported_endianness, supported_encoding

ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scikits.audiolab-0.11.0-py2.6-macosx-10.3-fat.egg/scikits/audiolab/pysndfile/_sndfile.so, 2): Symbol not found: _sf_close
  Referenced from: /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scikits.audiolab-0.11.0-py2.6-macosx-10.3-fat.egg/scikits/audiolab/pysndfile/_sndfile.so
  Expected in: dynamic lookup

_sndfile.so是在它描述的位置创建的,所以据我所知,链接到它是一些奇怪的问题。把我难住了。我正要放弃audiolab。

我不能使用内置的 scipy 方法来加载 wav,因为它不适用于 24 位 WAV。

4

1 回答 1

0

Audiolab 需要 libsndfile。我已经通过 MacPorts 安装了它,但默认情况下它只构建为 x86_64。

删除所有安装并重新安装带有标志的 libsndfile 将其+universal构建为 i386 和 x86_64。

现在我可以从源代码安装 audiolab 并正确链接。:)

于 2011-10-28T12:28:33.707 回答