我正在尝试使用名为 Essentia 的Python模块,该模块用于音频分析。为了使用它,它必须在Ubuntu环境中构建,如here所述。我完成了在桌面文件夹中安装Essentia
的所有事情。
然后在IPython
中,我尝试导入已安装和构建的Essentia
模块。我在我的模块所在的文件夹中运行IPython
。它不在/usr/lib/python2.7
中。如上所述,它位于我的桌面上。
但是当我在IPython中导入Essentia模块时,它会告诉我
ImportError:没有名为essentia的模块
这是什么问题?我是否必须在/usr/lib/python2.7
内构建Essentia,如果是,我该怎么做?或者还有其他一些问题?
答案 0 :(得分:3)
我有完全相同的问题,并能够解决它。
从你的问题我不能100%确定你的问题是什么 - 然而,这些是你或其他人可能拥有的几个可能的罪魁祸首。
我也使用Python 2.7,并希望在IPython / Jupyter Notebook环境中使用Essentia。
这是我对你的问题的第一个猜测。
如果您能够成功配置和安装Essentia(另请参见下文),可能安装Essentia Python文件的路径为/usr/local/lib/python2.7/site-packages
或类似,并且Python不在那里。为了确保它,您可以添加
import sys
sys.path.append("/usr/local/lib/python2.7/site-packages")
到Python脚本的开头。
您还可以将以下行添加到~/.bash_profile
:
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages/
避免必须将此路径添加到您要使用Essentia的每个Python文件/ Notebook。
如果您能够成功配置并安装Essentia,请跳过此步骤。这些是我在收到install finished successfully
消息之前遇到的其他值得注意的问题。
OP指出的主要指示是here。
我使用MacPorts解决了这个问题:
sudo port install fftw-3-single
sudo port install taglib
我应该注意到我在安装过程中遇到了一些问题,这使我摆脱了C ++测试,Gaia和Vamp插件支持(我不需要),只需从配置行中删除这些和其他一些({{3} }):
./waf configure --mode=release --with-python --with-examples
而不是
./waf configure --mode=release --build-static --with-python --with-cpptests --with-examples --with-vamp --with-gaia
这使得以下错误消息消失:
Build failed
-> task in 'standard_fadedetection' failed (exit status 1):
{task 4417706448: cxxprogram standard_fadedetection.cpp.5.o -> standard_fadedetection}
['clang++', '-stdlib=libc++', 'src/examples/standard_fadedetection.cpp.5.o', '-o', '/Users/Brecht/Downloads/essentia-2.0.1/build/src/examples/standard_fadedetection', '-Lsrc', '-lessentia', '-L/opt/local/lib', '-L/opt/local/lib', '-L/opt/local/lib', '-L/opt/local/lib', '-L/opt/local/lib', '-L/opt/local/lib', '-L/opt/local/lib', '-L/opt/local/lib', '-lfftw3f', '-lyaml', '-lavformat', '-lavcodec', '-lavutil', '-lswresample', '-lsamplerate', '-ltag']
-> task in 'streaming_extractor_freesound' failed (exit status 1):
{task 4417783952: cxxprogram FreesoundExtractor.cpp.22.o,FreesoundLowlevelDescriptors.cpp.22.o,FreesoundRhythmDescriptors.cpp.22.o,FreesoundSfxDescriptors.cpp.22.o,FreesoundTonalDescriptors.cpp.22.o,streaming_extractor_freesound.cpp.22.o -> streaming_extractor_freesound}
['clang++', '-stdlib=libc++', 'src/examples/freesound/FreesoundExtractor.cpp.22.o', 'src/examples/freesound/FreesoundLowlevelDescriptors.cpp.22.o', 'src/examples/freesound/FreesoundRhythmDescriptors.cpp.22.o', 'src/examples/freesound/FreesoundSfxDescriptors.cpp.22.o', 'src/examples/freesound/FreesoundTonalDescriptors.cpp.22.o', 'src/examples/streaming_extractor_freesound.cpp.22.o', '-o', '/Users/Brecht/Downloads/essentia-2.0.1/build/src/examples/streaming_extractor_freesound', '-Lsrc', '-lessentia', '-L/opt/local/lib', '-L/opt/local/lib', '-L/opt/local/lib', '-L/opt/local/lib', '-L/opt/local/lib', '-L/opt/local/lib', '-L/opt/local/lib', '-L/opt/local/lib', '-lfftw3f', '-lyaml', '-lavformat', '-lavcodec', '-lavutil', '-lswresample', '-lsamplerate', '-ltag']
让我知道这是怎么回事 - 我对你遇到的所有错误都有一种感觉。
(致谢: 我能够如此快速地解决这个问题的主要原因是as this has helped other users in the past - 还要感谢this thread和@djmoffat。< / em>的)
答案 1 :(得分:0)
在Mac OS 10.14.5上安装时遇到了一些困难
这为我解决了问题
brew install essentia --HEAD
此后,我查找Homebrew将站点包放在何处,并使用此代码在Jupyter笔记本中导入和使用essentia:
import sys
sys.path.append("/usr/local/homebrew/lib/python3.7/site-packages")
import essentia