导入错误:无法导入pydot。您必须安装pydot和graphviz才能使`pydotprint`正常工作。

77

我看到了类似的问题,但也没有解决,所以我决定问一下。

我正在尝试使用Keras可视化我的模型。

from keras.utils import plot_model
plot_model(model, to_file='model.png')

首先,它显示了错误。

ImportError: Failed to import pydot. You must install pydot and graphviz for `pydotprint` to work.

因此,我通过Anaconda提示符安装了pydot和graphviz,并在激活我的环境后进行了安装。
conda install -c https://conda.binstar.org/t/TOKEN/j14r pydot
conda install -c https://conda.binstar.org/t/TOKEN/j14r graphviz

然后,我关闭了 Spyder 并重新打开了它。当我运行代码片段时,仍然显示相同的错误。 我错过了什么吗?


1
请查看 https://dev59.com/-FYN5IYBdhLWcg3wm5EL#47209738 - 0 _
1
可能是keras plot_model 告诉我安装pydot的重复问题。 - 0 _
1
@loannis Filippidis,谢谢,是的,它说:“已安装的GraphViz可执行文件(dot、neato等)的路径需要在PATH环境变量中,以便pydot找到它们。在早期版本中,pydot曾经搜索这些可执行文件,但现在不再这样做。”如果您是指这个问题,我不知道如何做,对此很抱歉,您能否更具体地说明一下步骤? - bit_scientist
@loannisFilippidis,我在_C:\Users\username\Anaconda3\envs\tfcnn\Library\bin\graphviz_中找到了dot和neato可执行文件,并将其添加到系统属性>环境变量>系统变量>编辑中。但是它似乎没有起作用! - bit_scientist
我不是Windows用户。也许需要重新启动计算机才能使新路径生效。在Linux系统中,通常通过“~/.bashrc”配置路径。 - 0 _
显示剩余2条评论
23个回答

57

以下命令解决了我的问题

  1. pip install pydot
  2. pip install pydotplus
  3. sudo apt-get install graphviz

注:本翻译保留了原文中的 HTML 标签,请勿删除。

2
在Windows中,因为我已经安装了conda,所以我使用了conda install graphviz而不是sudo apt-get install graphviz,它起作用了。谢谢! - kodfire
另外,如下所述 - 重新启动内核。 - dainys
是的,使用sudo apt-get install graphviz来安装graphviz,而不是使用pip install graphviz - undefined

36

看起来您正在使用Windows操作系统。在这种情况下,请查看此SO Q&A流程和/或此Keras问题在gitub上的页面

根据这两个来源的提示,似乎存在安装错误和/或路径错误。我使用pip uninstall卸载了所有相关软件包,然后:

pip install pydot
pip install pydotplus
pip install graphviz

然后:

  • 这里下载并安装graphviz二进制文件
  • 在系统PATH中添加graphviz bin文件夹的路径

我正在Windows cmd窗口中运行Python脚本myscript.py。 我不得不关闭并重新打开它以刷新PATH,但是之后plot_model()正常输出。


1
尝试查看是否已从conda安装了GraphViz。如果是,请将其删除并从pip重新安装。这就是帮助我解决问题的方法。 - shahar_m
1
我不得不关闭并重新打开它以刷新PATH,但是然后plot_model()正常输出。这是专业技巧。 - marcelovca90
如果你在Pycharm中工作,请确保使用系统的Python解释器,而不是Pycharm自动绑定到每个Python项目的虚拟解释器。文件 > 设置 > 项目aaa > Python解释器,然后选择本地bin目录,例如C:\Python310\python.exe。 - Michael
这对我有用。重新启动命令提示符是我遗漏的一点。 - undefined

20

解决方案来源:https://github.com/XifengGuo/CapsNet-Keras/issues/69#issuecomment-483273641

我按照建议卸载并重新安装了pydot + pydotplus,在我的Windows 10机器上使用Anaconda 3成功地解决了这个问题。

conda uninstall pydot
conda uninstall pydotplus
conda uninstall graphviz

那么

conda install pydot
conda install pydotplus

注意:安装pydot还会安装graphviz


19

我通过安装以下内容解决了这个问题:

conda install graphviz
conda install pydot
conda install pydotplus

PS:我使用plot_model进行了调用:

from tensorflow.keras.utils import plot_model

现在它正在工作。


1
这对我来说完美地运作了。 - Mattia Surricchio
1
这对我也有效 :-) - Raghu
2
它对我也起作用了。我最初使用pip安装这些包,但那并没有起作用。conda install 起作用了。 - Abhishek Kishore
1
你是一个英雄! - AnonX

10

重新启动内核解决了我的问题,无需使用pydot-ng。


6

使用以下命令安装它们:

sudo apt install python-pydot python-pydot-ng graphviz 

1
无法找到包python-pydot-ng。 - Budi Mulyo

6
在Windows 10上使用TensorFlow 2.3.0,无需Anaconda,以下步骤对我最终有效:
  1. 安装32位Graphviz(64位无效)
  2. 将Graphviz路径C:\Program Files (x86)\Graphviz\bin添加到系统和用户的 PATH 环境变量中
  3. 安装pydot-ng,这是TensorFlow 2.3.0使用的首选pydot库
from tensorflow.keras.utils import plot_model

# model = Model(...)

plot_model(model, to_file='model.png', show_shapes=True, show_layer_names=True)

这对我来说是解决方案!谢谢。 - Panos Kalatzantonakis

4

这些命令对我来说有效。 我做了:

conda install -c https://conda.binstar.org/t/TOKEN/j14r pydot
conda install -c https://conda.binstar.org/t/TOKEN/j14r graphviz
sudo apt install python-pydot python-pydot-ng graphviz 

4
只需运行conda install -c conda-forge pydot graphviz即可。 - Nagabhushan S N

2

我最近遇到了这个问题,但是所有建议的解决方案都不适用于我,因为我使用的是Mac。所以,如果你像我一样是Mac用户,请使用下面的命令:

pip install pydot
pip install pydotplus
pip install graphviz

brew install graphviz

您需要使用brew安装graphviz才能使用plot_model


2
也许现在已经晚了,但我认为这会对某些人有所帮助。我使用的是Ubuntu 22.04。在我的情况下,首先安装了以下程序:
sudo apt install graphviz
pip install pydot
pip install pydotplus
pip install graphviz

第二步是重新启动计算机。

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