IPython Essentia'没有模块命名'错误

时间:2015-10-22 08:58:36

标签: python python-2.7 ipython ipython-notebook jupyter-notebook

我正在尝试使用名为 Essentia 的Python模块,该模块用于音频分析。为了使用它,它必须在Ubuntu环境中构建,如here所述。我完成了在桌面文件夹中安装Essentia的所有事情。

然后在IPython中,我尝试导入已安装和构建的Essentia模块。我在我的模块所在的文件夹中运行IPython。它不在/usr/lib/python2.7中。如上所述,它位于我的桌面上。

但是当我在IPython中导入Essentia模块时,它会告诉我

  

ImportError:没有名为essentia的模块

这是什么问题?我是否必须在/usr/lib/python2.7内构建Essentia,如果是,我该怎么做?或者还有其他一些问题?

2 个答案:

答案 0 :(得分:3)

我有完全相同的问题,并能够解决它。

从你的问题我不能100%确定你的问题是什么 - 然而,这些是你或其他人可能拥有的几个可能的罪魁祸首。

我也使用Python 2.7,并希望在IPython / Jupyter Notebook环境中使用Essentia。

1。 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。

2。配置和安装

如果您能够成功配置并安装Essentia,请跳过此步骤。这些是我在收到install finished successfully消息之前遇到的其他值得注意的问题。

OP指出的主要指示是here

未找到ffftw3f或taglib

我使用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上安装时遇到了一些困难

这为我解决了问题

  • 使用conda Python v3.7创建了一个虚拟环境
  • 通过自制软件安装了essentia:brew install essentia --HEAD

此后,我查找Homebrew将站点包放在何处,并使用此代码在Jupyter笔记本中导入和使用essentia:

import sys
sys.path.append("/usr/local/homebrew/lib/python3.7/site-packages")

import essentia