首页 > 解决方案 > 如何使用 anaconda 3.6 在 jupyter notebook 中获取 librosa.display 和 matplotlib

问题描述

我正在尝试让 Librosa 使用 python。最初我安装了 Python 2.7,我无法让 Librosa 使用 Python 2.7,所以我安装了 Anaconda(我以前从未使用过),以便我可以拥有一个单独的环境(允许我用 2.7 编写的旧程序继续工作)。我正在尝试使用我以前从未使用过的 Jupyter 笔记本,在使用 Python 3.6 创建 Anaconda 环境后,我终于设法导入了 Librosa,但是我无法导入 librosa.display

当我用谷歌搜索“导入 Librosa.display”时,显然我需要先安装 matplotlib,但是导入 matplotlib 失败了,我不知道为什么。我认为它可能由于导入 PIL /pillow 而失败?但是我以前从未专门使用过该模块,或者在使用 matplotlib 时必须单独安装它,所以我不确定为什么需要它。我尝试在我创建的 anaconda python3.6 环境中使用 PIP install 重新安装枕头,但它没有工作,所以现在卡住了,只是想知道是否有人可以帮助我?

导入代码如下

import matplotlib 
import librosa 
import matplotlib.pyplot as plt 
import librosa.display

程序卡在“import matplotlib.pyplot as plt”上,我目前收到的错误消息如下(在重新安装枕头之前它不起作用,但消息不同):

C:\Users\sh\.conda\envs\signalprocess1\lib\site-packages\PIL\Image.py:130: RuntimeWarning: The _imaging extension was built for another version of Pillow or PIL:
Core version: 8.2.0
Pillow version: 8.1.2
  warnings.warn(str(v), RuntimeWarning)


C:\Users\sh\.conda\envs\signalprocess1\lib\site-packages\matplotlib\mathtext.py in <module>()
 25 
 26 import numpy as np
---> 27 from PIL import Image
 28 from pyparsing import (
 29     Combine, Empty, FollowedBy, Forward, Group, Literal, oneOf, OneOrMore,

C:\Users\sh\.conda\envs\signalprocess1\lib\site-packages\PIL\Image.py in <module>()
111     if __version__ != getattr(core, "PILLOW_VERSION", None):
112         raise ImportError(
--> 113             "The _imaging extension was built for another version of Pillow or PIL:\n"
114             f"Core version: {getattr(core, 'PILLOW_VERSION', None)}\n"
115             f"Pillow version: {__version__}"

ImportError: The _imaging extension was built for another version of Pillow or PIL:
Core version: 8.2.0
Pillow version: 8.1.2

任何帮助都会很棒。我不需要使用 Jupyter 如果 IDLE 可以通过 Python 3.6 与 Librosa 和 matplotlib 一起使用,我非常乐意使用 IDLE。我想做的就是让 Librosa 和 Matplotlib 工作,这样我就可以分析信号了!我想如果我再花几天时间,我最终会解决它,但是在我进行信号分析之前,花这么多时间试图让软件包工作是非常烦人的。

谢谢!!:)

标签: pythonmatplotlibjupyter-notebookanacondalibrosa

解决方案


我不确定我做错了什么.....但是最后我让librosa在Windows 10(64)上使用anaconda python 3.8和jupyter,如下所示......

已卸载的 anaconda(可能没有必要卸载它 - 不确定)

尽我所能卸载了jupyter(似乎仍然是与arcpy相关的一些残余)

安装了 miniconda python 3.8 版本

创建了一个新的(单独的)Conda 环境,它也使用了 python 3.8

这是通过打开 Conda 命令提示符然后键入......

conda create --name signalpro38 python=3.8

(注意 signalpro38 是我给新环境起的名字)

通过键入以下内容激活新环境:

conda activate signalpro38

安装:

  • matplotlib,
  • scipy,
  • 麻木,
  • 麻木的

然后

  • 朱庇特

通过键入进入新环境(signalpro38)

conda install matplotlib 
conda install scipy

等等

按照此处的说明,将新的 anaconda 环境添加到 jupyter:

https://medium.com/@nrk25693/how-to-add-your-conda-environment-to-your-jupyter-notebook-in-just-4-steps-abeab8b8d084

打开jupyter并创建了一个新笔记本(确保选择新环境的名称signalpro38)

在新笔记本中键入代码,保存并运行它,以检查命令

import matplotlib 

import matplotlib.pyplot as plt 

在 jupyter 工作正常

关闭 jupyter 并返回到 Conda 命令提示符(我创建的 signalpro38 环境仍处于激活状态)然后使用安装 librosa

pip install librosa 

(请注意,“conda install librosa”没有找到 librosa,但我想也有一种方法可以使用 conda 安装 librosa)

再次打开 jupyter 和之前保存的笔记本文件并添加

import librosa
import librosa.display

现在一切似乎都运行良好!:)

希望这对其他人有帮助!当我有一天需要再次执行此操作时,它很可能会对我有所帮助!:p


推荐阅读