cedadev / ceda-jaspy-envs

Conda (Jaspy) environments for CEDA/JASMIN
BSD 2-Clause "Simplified" License
5 stars 0 forks source link

libsndfile1 on Jaspy #80

Closed simonrolph closed 3 years ago

simonrolph commented 3 years ago

Hi I was looking to run https://github.com/kahst/BirdNET on JASMIN because we have lots of audio to process however in the install readme there is the line:

  1. Install BLAS: sudo apt-get install libblas-dev liblapack-dev

Is it possible to get these on Jaspy?

Thanks

simonrolph commented 3 years ago

Actually sorry BLAS is already installed I think: https://github.com/cedadev/ceda-jaspy-envs/blob/master/environments/py3.7/m3-4.9.2/jaspy3.7-m3-4.9.2-r20210320/final-spec.yml

This is the error I get when I run the example script:

[simrol@sci2 BirdNET]$ python analyze.py --i example/Soundscape_1.wav --lat 42.479 --lon -76.451
Traceback (most recent call last):
  File "analyze.py", line 8, in <module>
    from utils import audio
  File "/home/users/simrol/BirdNET/utils/audio.py", line 6, in <module>
    import librosa
  File "/home/users/simrol/.local/lib/python3.7/site-packages/librosa/__init__.py", line 211, in <mod                             ule>
    from . import core
  File "/home/users/simrol/.local/lib/python3.7/site-packages/librosa/core/__init__.py", line 6, in <                             module>
    from .audio import *  # pylint: disable=wildcard-import
  File "/home/users/simrol/.local/lib/python3.7/site-packages/librosa/core/audio.py", line 8, in <mod                             ule>
    import soundfile as sf
  File "/home/users/simrol/.local/lib/python3.7/site-packages/soundfile.py", line 142, in <module>
    raise OSError('sndfile library not found')
OSError: sndfile library not found

Seems to relate to this: https://stackoverflow.com/questions/55086834/cant-import-soundfile-python

agstephens commented 3 years ago

Hi @simonrolph,

I can see that you already have some of your own local installations under: ~/.local/lib/python3.7/site-packages

Can you try installing soundfile with:

pip install SoundFile

If it works, it should install the package in the same location.

simonrolph commented 3 years ago

Thanks looking into this. I've tried installing with pip, the requirements seem to be satisfied but I get the same error:

[simrol@sci2 BirdNET]$ pip install SoundFile
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: SoundFile in /home/users/simrol/.local/lib/python3.7/site-packages (0.10.3.post1)
Requirement already satisfied: cffi>=1.0 in /apps/jasmin/jaspy/miniconda_envs/jaspy3.7/m3-4.9.2/envs/jaspy3.7-m3-4.9.2-r20210320/lib/python3.7/site-packages (from SoundFile) (1.14.4)
Requirement already satisfied: pycparser in /apps/jasmin/jaspy/miniconda_envs/jaspy3.7/m3-4.9.2/envs/jaspy3.7-m3-4.9.2-r20210320/lib/python3.7/site-packages (from cffi>=1.0->SoundFile) (2.20)
[simrol@sci2 BirdNET]$ python analyze.py --i example/Soundscape_1.wav --lat 42.479 --lon -76.451
Traceback (most recent call last):
  File "analyze.py", line 8, in <module>
    from utils import audio
  File "/home/users/simrol/BirdNET/utils/audio.py", line 6, in <module>
    import librosa
  File "/home/users/simrol/.local/lib/python3.7/site-packages/librosa/__init__.py", line 211, in <module>
    from . import core
  File "/home/users/simrol/.local/lib/python3.7/site-packages/librosa/core/__init__.py", line 6, in <module>
    from .audio import *  # pylint: disable=wildcard-import
  File "/home/users/simrol/.local/lib/python3.7/site-packages/librosa/core/audio.py", line 8, in <module>
    import soundfile as sf
  File "/home/users/simrol/.local/lib/python3.7/site-packages/soundfile.py", line 142, in <module>
    raise OSError('sndfile library not found')
OSError: sndfile library not found

Any ideas?

agstephens commented 3 years ago

Hi @simonrolph , we will see if we can get this included in the next version of Jaspy (to be released soon).

simonrolph commented 3 years ago

Great! thanks @agstephens 👍

alaniwi commented 3 years ago

We are using conda package pysoundfile in the new Jaspy release to be installed very soon. This installs the python package SoundFile. So I am closing this issue now. Please watch for announcement on JASMIN users list regarding release of the new Jaspy version (and note that it might not be made the default version immediately, so you might need to specify the Jaspy release version when loading the module).