Python 伊皮顿Essentia';没有名为';错误

Python 伊皮顿Essentia';没有名为';错误,python,python-2.7,ipython,ipython-notebook,jupyter-notebook,Python,Python 2.7,Ipython,Ipython Notebook,Jupyter Notebook,我正在尝试使用一个名为Essentia的Python模块,该模块用于音频分析。为了使用它,它必须在Ubuntu环境中构建。我做了所有的事情来安装Essentia在桌面的一个文件夹中 然后在IPython中,我尝试导入已安装和构建的Essentia模块。我正在模块所在的文件夹中运行IPython。它不在/usr/lib/python2.7中。如上所述,它位于我的桌面上 但当我在IPython中导入Essentia模块时,它告诉我 ImportError:没有名为essentia的模块 这里有什么问

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

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

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

ImportError:没有名为essentia的模块


这里有什么问题?我必须在
/usr/lib/python2.7
中构建Essentia吗?如果是,我该如何做到?还是其他什么问题出了问题?

我遇到了完全相同的问题,并且能够解决它

从你的问题来看,我无法100%确定你的问题是什么——然而,你或其他人可能有几个可能的罪魁祸首

一、 我也在使用Python2.7,希望在IPython/Jupyter笔记本环境中使用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\u配置文件中:

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages/
避免将此路径添加到您希望使用Essentia的每个Python文件/笔记本中

2.配置和安装 如果您能够成功配置和安装Essentia,请跳过此步骤。这些是在我最终成功完成
安装之前遇到的其他值得注意的问题

如OP所述,主要说明如下

未找到ffftw3f或标记库 我改用MacPorts解决了这个问题:

sudo port install fftw-3-single
sudo port install taglib
安装失败

我应该注意到,在安装过程中我遇到了一些问题,这些问题使我摆脱了C++测试、GAIa和VAMP插件支持(我不需要这些),通过从配置行中删除这些(和其他一些)():

而不是

./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']
让我知道这是怎么回事——我对你可能遇到的所有错误都有一种感觉


确认:我能够如此快速地解决这个问题的主要原因是-也要感谢和。)

我在Mac OS 10.14.5上安装时遇到了一些困难

这为我解决了问题:

  • 使用conda、Python v3.7创建虚拟环境
  • 使用自制软件安装essentia:
    brew安装essentia--HEAD
之后,我查找了Homebrew放置站点包的位置,并使用以下代码在Jupyter笔记本中导入和使用essentia:

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

import essentia

请添加
which-a python
which-a ipython
which-a python
输出为
/usr/bin/python
其中-a ipython
输出为
/usr/local/bin/ipython
“我正在模块所在的文件夹中运行ipython”:我想你需要告诉我们那个文件夹里有什么?您可能需要向上或向下移动一个文件夹,或更改某些内容,才能使您的导入语句正常工作。您的导入语句到底是什么<代码>导入essentia
import sys
sys.path.append("/usr/local/homebrew/lib/python3.7/site-packages")

import essentia