IPython 基本 'no module named' 错误
IPython Essentia 'no module named' error
我正在尝试使用名为 Essentia 的 Python 模块,该模块用于音频分析。为了使用它,它必须在 Ubuntu 环境中构建,如 here 所述。我做了所有的事情来安装 Essentia
在桌面的文件夹中。
然后在 IPython
中,我尝试导入已安装和构建的 Essentia
模块。我在我的模块所在的文件夹里运行IPython
。它不在 /usr/lib/python2.7
中。如上所述,它位于我的桌面上。
但是当我在 IPython 中导入 Essentia 模块时,它告诉我
ImportError: No module named essentia
这里有什么问题?我是否必须在 /usr/lib/python2.7
内构建 Essentia,如果是这样,我该怎么做?还是其他什么地方出了问题?
我遇到了完全相同的问题并且能够解决它。
根据你的问题,我不能 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 file/Notebook。
2。配置和安装
如果您能够成功配置和安装 Essentia,请跳过此步骤。在我最终收到 install finished successfully
消息之前,这些是我遇到的其他值得注意的问题。
如 OP 所述,主要说明是 here。
未找到 ffftw3f 或 taglib
我改用 MacPorts 解决了这个问题:
sudo port install fftw-3-single
sudo port install taglib
安装失败
我应该注意到我在安装过程中遇到了一些问题,这让我摆脱了 C++ 测试、Gaia 和 Vamp 插件支持(我需要的 none),方法是从配置中删除这些和其他一些行 (as this has helped other users in the past):
./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']
让我知道结果如何 - 我有一种感觉,我对您可能遇到的所有错误都有所了解。
(致谢: 我能这么快解决这个问题的主要原因是this thread - also thanks to @djmoffat and @justin_salamon.)
我在 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
我正在尝试使用名为 Essentia 的 Python 模块,该模块用于音频分析。为了使用它,它必须在 Ubuntu 环境中构建,如 here 所述。我做了所有的事情来安装 Essentia
在桌面的文件夹中。
然后在 IPython
中,我尝试导入已安装和构建的 Essentia
模块。我在我的模块所在的文件夹里运行IPython
。它不在 /usr/lib/python2.7
中。如上所述,它位于我的桌面上。
但是当我在 IPython 中导入 Essentia 模块时,它告诉我
ImportError: No module named essentia
这里有什么问题?我是否必须在 /usr/lib/python2.7
内构建 Essentia,如果是这样,我该怎么做?还是其他什么地方出了问题?
我遇到了完全相同的问题并且能够解决它。
根据你的问题,我不能 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 file/Notebook。
2。配置和安装
如果您能够成功配置和安装 Essentia,请跳过此步骤。在我最终收到 install finished successfully
消息之前,这些是我遇到的其他值得注意的问题。
如 OP 所述,主要说明是 here。
未找到 ffftw3f 或 taglib
我改用 MacPorts 解决了这个问题:
sudo port install fftw-3-single
sudo port install taglib
安装失败
我应该注意到我在安装过程中遇到了一些问题,这让我摆脱了 C++ 测试、Gaia 和 Vamp 插件支持(我需要的 none),方法是从配置中删除这些和其他一些行 (as this has helped other users in the past):
./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']
让我知道结果如何 - 我有一种感觉,我对您可能遇到的所有错误都有所了解。
(致谢: 我能这么快解决这个问题的主要原因是this thread - also thanks to @djmoffat and @justin_salamon.)
我在 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