I'm using Anaconda and I'm trying to import soundfile/pysoundfile.
I installed the package by running
conda install -c conda-forge pysoundfile
and I think it succeeded because when I run
conda list
it shows up:
pyopenssl 17.2.0 py36h5d7bf08_0
pyparsing 2.2.0 py36hb281f35_0
pyqt 5.6.0 py36he5c6137_6
pysocks 1.6.7 py36hfa33cec_1
pysoundfile 0.10.1 py_0 conda-forge
pytables 3.4.2 py36hfbd7ab0_2
pytest 3.2.1 py36h9963153_1
To make sure I'm running the "right" python, I've tried running
which python
and I get
/anaconda3/bin/python
But when I open python and try running
import soundfile
I get the following:
Traceback (most recent call last):File "/anaconda3/lib/python3.6/site-packages/soundfile.py", line 142, in <module>raise OSError('sndfile library not found')
OSError: sndfile library not foundDuring handling of the above exception, another exception occurred:Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/anaconda3/lib/python3.6/site-packages/soundfile.py", line 163, in <module>_path, '_soundfile_data', _libname))
OSError: cannot load library '/anaconda3/lib/python3.6/site-packages/_soundfile_data/libsndfile.dylib': dlopen(/anaconda3/lib/python3.6/site-packages/_soundfile_data/libsndfile.dylib, 2): image not found
Out of curiosity I opened the soundfile.py file with a text editor to see what line 142 looked like, and it looks like this:
try:_libname = _find_library('sndfile')if _libname is None:raise OSError('sndfile library not found') # <---- line 142_snd = _ffi.dlopen(_libname)
except OSError:if _sys.platform == 'darwin':_libname = 'libsndfile.dylib'elif _sys.platform == 'win32':from platform import architecture as _architecture_libname = 'libsndfile' + _architecture()[0] + '.dll'else:raise# hack for packaging tools like cx_Freeze, which# compress all scripts into a zip file# which causes __file__ to be inside this zip file_path = _os.path.dirname(_os.path.abspath(__file__))while not _os.path.isdir(_path):_path = _os.path.abspath(_os.path.join(_path, '..'))_snd = _ffi.dlopen(_os.path.join(_path, '_soundfile_data', _libname))
In the docs, it says "import soundfile" is the correct way to import, but I also tried
import pysoundfile
and only got
Traceback (most recent call last):File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'pysoundfile'
Is there anyone who knows why this is happening? I'm running this on MacOS btw.