[This is a brief note so I don't forget how to do this, and will probably be technically obsolete before long!]
Essentia is an "Open-source library and tools for audio and music analysis, description and synthesis" (https://essentia.upf.edu)
If you use Jupyter Lab / notebooks and therefore manage your Python environments using Anaconda, AND your machine is macOS, you will not be able to install Essentia out of the box. This is because:
pip install essentiais currently Linux onlybrew install essentia(https://github.com/MTG/homebrew-essentia) is incompatible with Anacondaconda install essentiadoes not (yet) exist (MTG/essentia#777)
If you try to install Essentia from source (https://essentia.upf.edu/documentation/installing.html) using an Anaconda environment on macOS, you will find that a bug in CPython means that ./waf configure [...] fails:
However:
- homebrew's Python does not suffer from the same issue
- The issue above is only relevant in the
configurestep and not theinstallsteps.
So! A hacky, ugly, probably broken somewhere/somehow workaround, is:
- Do
./waf configure [...]using Python installed via homebrew (brew install python) rather than Anaconda - Then complete the rest of the installation using Anaconda's Python
Your essentia installation may end up in /usr/local/lib/python3.7/site-packages/, so you then need to add this to your Anaconda path:
import sys
sys.path.append('/usr/local/lib/python3.7/site-packages/') # not permanent
Now you should be able to import essentia from your Anaconda environment.
Yes, I did say it's ugly.
Hello! Noobie questions:
Could you please provide details about the steps you used?
What should be preceded by this
./waf configure [...]? something likebrew tap MTG/essentia ./waf configure [...]???should this be
brew tap MTG/essentiaorconda install essentia?Can you please post which lines of command should I use in terminal for the two main steps?