Bien, así que quería hacer un procesamiento de señal básico en Python y encontré esta gran biblioteca llamada scikits.audiolab
.scikits.audiolab en Ubuntu Oneiric - ImportError: Ningún módulo llamado _sndfile
No hay PPA en ningún lado. Oh bien. Pensé que podría instalarlo en mi servidor de Ubuntu onírico simplemente
sudo aptitude install libsndfile-dev
y luego
sudo easy_install scikits.audiolab
Esto, sin embargo, no pudo con
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].
Wtf? De acuerdo, consultada la lista libsndfile1-dev
archivo:
[email protected] ~ $ 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
[...]
extraños, bibliotecas de entrar en directorio de la biblioteca no estándar? Estúpido empaquetador.
Oh bien. Descargado la fuente de scikits.audiolab
, escribió un site.cfg
así:
[sndfile]
include_dirs = /usr/include
library_dirs = /usr/lib/x86_64-linux-gnu/
sndfile_libs = sndfile
Ahora python setup.py build
y sudo setup.py install
completado con éxito.
A continuación, puso en marcha un terminal de Python, trató de from scikits.audiolab import sndfile
:
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
Pero:
>> 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']
Y _sndfile.so
encontrar en /usr/local/lib/python2.7/dist-packages/scikits.audiolab-0.11.0-py2.7-linux-x86_64.egg/scikits/audiolab/pysndfile/_sndfile.so
.
lo tanto, mi pregunta es,
- wtf está pasando? ¿Por qué python no encuentra
_sndfile.so
? - ¿Alguien ha utilizado con éxito
scikits.audiolab
en 2011 en una 2011 Linux distro? ¿Cómo lo hiciste? - ¿Hay alguna biblioteca alternativa buena para leer archivos WAV ENORMES (como, 10 GB/8 horas) divididos por partes en NumPy?