在 Jupyter Notebook 中出现了“没有名为'graphviz'的模块”错误

22

我尝试用 Jupyter Notebook 这种方式绘制决策树。

mglearn.plots.plot_animal_tree()

但我没有用正确的方法,导致了以下错误信息。

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-65-45733bae690a> in <module>()
      1 
----> 2 mglearn.plots.plot_animal_tree()

~\Desktop\introduction_to_ml_with_python\mglearn\plot_animal_tree.py in plot_animal_tree(ax)
      4 
      5 def plot_animal_tree(ax=None):
----> 6     import graphviz
      7     if ax is None:
      8         ax = plt.gca()

ModuleNotFoundError: No module named 'graphviz

因此,我下载了Graphviz Windows Packages并安装了它。

然后,我将已安装路径(C:\ Program Files(x86)\ Graphviz2.38 \ bin)添加到用户路径和(C:\ Program Files(x86)\ Graphviz2.38 \ bin \ dot.exe)添加到系统路径。

之后,我重启了我的电脑。但是它仍然不起作用。我仍然无法使其工作。

因此,我在互联网上搜索到另一种解决方案,可以像这样在我的代码中添加路径。

import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin'

但它没起作用。

所以我现在不知道该怎么解决了。

我使用的是集成在Anacode3中的Python3.6。

我也尝试过像这样通过PIP安装graphviz。

pip install graphviz

但是它仍然无法正常工作。

希望有人能够帮助我,真诚地。


1
pip install graphviz 会打印什么?您使用的是 Python-2.x 还是 Python-3.x?(通常 Python-3.x 的软件包管理器是 pip3)。 - Willem Van Onsem
结果是,在重新启动电脑后,这个问题不可思议地被解决了。我使用了pip3默认设置,并且graphviz在pip列表中。所以,我真的很困惑如何解决这个问题... :( - Bowen Peng
嗯...在安装完包之后,你是否重新启动了jupyter-notebook? - Willem Van Onsem
是的,我做了很多次。我不知道哪一个解决了问题,是我安装的Graphviz还是其他人通过命令管道安装的。 :( - Bowen Peng
5个回答

75

在Anaconda中安装

  • python-graphviz
  • pydot

这将解决您的问题。


3
谢谢!我也遇到了同样的问题。你帮我节省了半天的时间。我是Python新手。 - Chandan
我不禁要在这里发表赞赏的言论...非常感谢您令人惊叹的解决方案。您又挽救了另一个人半天的时间。 - Yosher
谢谢,它已经起作用了,但是出现了新的错误 - “AssertionError:“dot” with args [‘-Tps’,‘C:\ Users \ ASHISH〜1 \ AppData \ Local \ Temp \ tmpu7mqu24b’] returned code: 1” - Ashish Saini
不确定是否实际上需要 pydot,除非 mglearn 实际上使用它。我没有使用 mglearn,所以不确定。无论如何,对于缺少 graphviz 的一般错误,只需要安装 python-graphviz 即可。 - Neil Traft

16

如上@grrr所回答,以下是代码:

conda install -c anaconda python-graphviz

conda install -c anaconda pydot

6

如果您使用的操作系统是Ubuntu,我建议尝试以下命令:

sudo apt-get install -y graphviz libgraphviz-dev

4

我使用conda安装了grphviz包,但是即使重启内核多次,仍然一直出现“模块未找到错误”的提示。

我甚至尝试按照这个页面的建议安装了“PyDot”,但实际上并没有帮助到我。

最后,我使用以下命令安装了该软件包:

pip install graphviz

我已经解决了问题,现在可以成功导入而没有出现错误。


0

我知道这个问题已经有答案了,但是为了未来的读者,我也遇到了同样的jupyter笔记本问题;在安装了python-graphviz和pydot之后,我仍然遇到了同样的问题。以下是对我有效的解决方法:确保你终端中的Python版本与jupyter笔记本的版本匹配,所以在你的终端中和juypter笔记本中都运行以下代码。如果你使用的是conda环境,请在检查Python版本之前加载环境。

import sys

print(sys.version)

如果它们不匹配,例如Python 3.6.x与Python 3.7.x,则可以让您的Jupyter笔记本找到所需的Python版本。
conda install nb_conda_kernels
conda install ipykernel
如果您正在使用conda环境, python -m ipykernel install --user --name myenv--display-name "Python (myenv)"
其中myenv是您的环境名称。然后进入您的Jupyter笔记本,在内核->更改内核中,选择正确的Python版本。问题解决了!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接