回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>好的,所以我想用Python做一些基本的信号处理,并找到了这个名为<code>scikits.audiolab</code>的伟大库。</p>
<p>在任何地方都找不到PPA。哦,好吧。我想我可以在我的Ubuntu Oneiric服务器上安装它</p>
<pre><code>sudo aptitude install libsndfile-dev
</code></pre>
<p>然后</p>
<pre><code>sudo easy_install scikits.audiolab
</code></pre>
<p>然而,这失败了</p>
<pre><code>error: sndfile (http://www.mega-nerd.com/libsndfile/) library not found.
Directories to search for the libraries can be specified in the
site.cfg file, in section [sndfile].
</code></pre>
<p>世界贸易基金会?好的,查询了<code>libsndfile1-dev</code>文件列表:</p>
<pre><code>japsu@helios ~ $ apt-file list libsndfile1-dev
libsndfile1-dev: /usr/include/sndfile.h
libsndfile1-dev: /usr/include/sndfile.hh
libsndfile1-dev: /usr/lib/x86_64-linux-gnu/libsndfile.a
libsndfile1-dev: /usr/lib/x86_64-linux-gnu/libsndfile.la
libsndfile1-dev: /usr/lib/x86_64-linux-gnu/libsndfile.so
libsndfile1-dev: /usr/lib/x86_64-linux-gnu/pkgconfig/sndfile.pc
[...]
</code></pre>
<p>奇怪,图书馆进入了非标准的图书馆目录?愚蠢的包装工。</p>
<p>哦,好吧。下载了<code>scikits.audiolab</code>的源代码,编写了如下<code>site.cfg</code>:</p>
<pre><code>[sndfile]
include_dirs = /usr/include
library_dirs = /usr/lib/x86_64-linux-gnu/
sndfile_libs = sndfile
</code></pre>
<p>现在,<code>python setup.py build</code>和<code>sudo setup.py install</code>已成功完成。</p>
<p>接下来,启动一个Python shell,尝试<code>from scikits.audiolab import sndfile</code>:</p>
<pre><code>Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "scikits/audiolab/__init__.py", line 25, in <module>
from pysndfile import formatinfo, sndfile
File "scikits/audiolab/pysndfile/__init__.py", line 1, in <module>
from _sndfile import Sndfile, Format, available_file_formats, \
ImportError: No module named _sndfile
</code></pre>
<p>但是:</p>
<pre><code>>> sys.path
['',
'/usr/bin',
'/usr/lib/pymodules/python2.7',
'/usr/local/lib/python2.7/dist-packages/scikits.audiolab-0.11.0-py2.7-linux-x86_64.egg',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/IPython/Extensions',
u'/home/japsu/.ipython']
</code></pre>
<p>以及在<code>/usr/local/lib/python2.7/dist-packages/scikits.audiolab-0.11.0-py2.7-linux-x86_64.egg/scikits/audiolab/pysndfile/_sndfile.so</code>发现的<code>_sndfile.so</code>。</p>
<p>所以,我的问题是</p>
<ol>
<li>世界贸易基金会在进行吗?为什么python找不到<code>_sndfile.so</code>?</li>
<li>2011年是否有人在2011年的Linux发行版上成功地使用了<code>scikits.audiolab</code>?你是怎么做到的?</li>
<li>有没有好的替代库可以将大量(比如,10gb/8小时)的WAV文件逐块读入NumPy?</li>
</ol>