如何使用 anaconda 3.6 在 jupyter notebook 中使用 librosa.display 和 matplotlib

How to get librosa.display and matplotlib working in jupyter notebook with anaconda 3.6

我正在尝试让 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 安装重新安装枕头,但它没有用,所以现在卡住了,只是想知道是否有人可以帮助我?

导入代码如下

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

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

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 工作,这样我就可以分析信号了!我想如果我再花几天时间,我最终会解决它的,但是在我开始信号分析之前,花所有的时间只是想让包工作是非常烦人的。

谢谢!! :)

我不确定我做错了什么..... 然而最后我让 librosa 与 anaconda python 3.8 和 jupyter 在 Windows 10 (64) 上工作,如下所示...

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

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

安装了minicondapython3.8版本

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

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

conda create --name signalpro38 python=3.8

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

通过键入激活新环境:

conda activate signalpro38

已安装:

  • matplotlib,
  • scipy,
  • numba,
  • numpy

然后

  • jupyter

进入新环境(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和之前保存的notebook文件并添加

import librosa
import librosa.display

现在似乎一切正常! :)

希望这对其他人有帮助!当我有一天需要再次这样做时,它很可能会帮助我! :p