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

Posted

技术标签:

【中文标题】ImportError: 无法导入 pydot。您必须安装 pydot 和 graphviz 才能使 `pydotprint` 工作【英文标题】:ImportError: Failed to import pydot. You must install pydot and graphviz for `pydotprint` to work 【发布时间】:2018-05-16 06:39:14 【问题描述】:

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

我正在尝试使用 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 prompt 安装了 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 并重新打开它。当我运行代码 sn-p 时,它仍然显示相同的错误。 我错过了什么?

【问题讨论】:

请看***.com/a/47209738/1959808 keras plot_model tells me to install pydot的可能重复 @loannis Filippidis,谢谢,是的,它说 安装的 GraphViz 可执行文件(dot、neato 等)的路径需要在 PATH 环境变量中,以便让 pydot 找到它们。 pydot 用于搜索早期版本中的那些可执行文件,但现在不再搜索了。 如果您是这个意思,我不知道该怎么做,抱歉,您能否更具体地逐步说明该怎么做步骤? 上述答案链接到路径配置的相关信息。 是的,我看到了,但我无法让它工作。我要说的是我不知道如何将已安装的 GraphViz 可执行文件(点、neasto 等)的路径放在 Path 环境中。我实际上是 windows 的新用户 【参考方案1】:

pip install pydot pip install jupyterlab

转到https://graphviz.org/download/ 并安装graphviz

导入操作系统 #os.environ["PATH"] += os.pathsep + 'C:/Program Files/Graphviz/bin/'

tf.keras.utils.plot_model(model = titanic_preprocessing , rankdir="LR", dpi=72, show_shapes=True)

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案2】:

    从https://www.graphviz.org/download/安装Graphviz

    进口:

    从 tensorflow.python.keras.utils.vis_utils 导入模型_to_dot

    从 tensorflow.python.keras.utils.vis_utils 导入 plot_model

【讨论】:

【参考方案3】:

使用 pip 安装 pydot 和 pydotplus。下载graphviz的exe并安装。将 graphviz 添加到 PATH。重新启动并检查。它会起作用的。

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案4】:

安装这些库后只需重新启动控制台,它应该可以正常工作。

【讨论】:

【参考方案5】:

我通过安装解决了这个问题:

conda install graphviz
conda install pydot
conda install pydotplus

PS:我用以下方式调用 plot_model:

from tensorflow.keras.utils import plot_model

它现在正在工作。

【讨论】:

这对我来说非常有效 这也适用于我:-)【参考方案6】:

在win10 anaconda3上 以管理员身份运行启动命令提示符 那么

conda install graphviz

这为您提供了 graphviz2.38 工作。 这击败了从https://graphviz.gitlab.io/download/#windows 下载安装程序的方式,这在我的机器上不起作用。 然后你可以 pip install pydot 来确保你拥有它。 然后重新启动内核,它应该没问题。 如果不, pip install graphviz,因为它似乎是一个必要的 python 包装器。 我还在上面的conda install 命令之前尝试了pip intsall pydot-ng pydotplus。他们当时没有提供帮助。

【讨论】:

【参考方案7】:

它在 Spuder IDE 中工作。主要思想是减少导入库的数量。

from keras.utils.vis_utils import pydot
from keras.utils.vis_utils import plot_model

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

【讨论】:

请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常更有帮助、质量更好,并且更有可能吸引投票。 这个答案展示了如何使用 plot_model 函数,这是 OP 已经证明他们知道如何做的事情。问题是关于解决 pydot 和 graphviz 安装错误。【参考方案8】:

在 Windows 10 上使用 TensorFlow 2.3.0 没有 Anaconda,以下(最终)对我有用:

    安装Graphviz 32 bit(64 位无效) 将 Graphviz 路径 C:\Program Files (x86)\Graphviz\bin 添加到系统和用户的 PATH 环境变量中 安装 pydot-ng,它是 TensorFlow 2.3.0 使用的 preferred pydot library
from tensorflow.keras.utils import plot_model

# model = Model(...)

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

【讨论】:

【参考方案9】:

这对我有用

import keras.utils.vis_utils
from importlib import reload
reload(keras.utils.vis_utils)


from keras.utils.vis_utils import plot_model    
plot_model(model, to_file='model_plot.png', show_shapes=True, show_layer_names=True)

【讨论】:

【参考方案10】:

对于 jupyter notebook 安装要求后重启 notebook。它对我有用。

【讨论】:

【参考方案11】:

试试这个。

import keras
import pydot
import pydotplus
from pydotplus import graphviz
from keras.utils.vis_utils import plot_model
from keras.utils.vis_utils import model_to_dot
keras.utils.vis_utils.pydot = pydot

这对我有用。看看这个 -> https://github.com/XifengGuo/CapsNet-Keras/issues/69

【讨论】:

【参考方案12】:

这对我有用:

在我的虚拟环境中安装(Python 3):

pip3 install pydot_ng

在机器级别安装(如果只安装在环境中则不起作用):

sudo apt-get install graphviz

要导入它:

import pydot_ng as pydot

【讨论】:

【参考方案13】:

即使在安装了pydotpydotplusgraphviz 之后,我还是遇到了dot cannot be found in environment PATH 的错误

所以我从https://graphviz.gitlab.io/download/ 安装了graphviz-2.38.msi

但是,问题一直存在,直到我从 **keras.utils.plot_model** 切换到 **tf.keras.utils.plot_model**

See image, Plot model now works

【讨论】:

这表示你已经将keras和tensorflow都作为tf导入了。当前的建议是不要导入 keras,而是在需要访问 keras 功能时使用 tf.keras。【参考方案14】:

您似乎使用的是 Windows。在这种情况下,请参阅this SO Q&A stream 和/或this Keras issue on gitub。

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

pip install pydot
pip install pydotplus
pip install graphviz

然后:

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

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

【讨论】:

尝试查看是否从 conda 安装了 GraphViz。如果是这样,请将其删除并从 pip 安装。这就是帮助我解决这个问题的原因。【参考方案15】:

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

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

conda uninstall pydot
conda uninstall pydotplus
conda uninstall graphviz

然后

conda install pydot
conda install pydotplus

注意:安装 pydot 也安装了 graphviz

【讨论】:

【参考方案16】:

这些命令对我有用。我做到了:

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 

【讨论】:

只是conda install -c conda-forge pydot graphviz 工作【参考方案17】:

重启内核为我解决了这个问题,不需要 pydot-ng。

【讨论】:

【参考方案18】:

以下命令为我解决了这个问题

    pip install pydot pip install pydotplus sudo apt-get install graphviz

【讨论】:

【参考方案19】:

使用下一个命令安装它们:

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

【讨论】:

E: 找不到包 python-pydot-ng【参考方案20】:

对我来说,我所要做的就是安装 graphviz 和 pydot:

在 Python3 上:

pip3 install pydot-ng
pip3 install graphviz

在 Python2 上:

pip3 install pydot-ng
pip3 install graphviz

这为我解决了错误。

【讨论】:

以上是关于ImportError: 无法导入 pydot。您必须安装 pydot 和 graphviz 才能使 `pydotprint` 工作的主要内容,如果未能解决你的问题,请参考以下文章

TensorFlow ImportError: (‘Failed to import pydot. You must `pip install pydot`)

pydot 和 graphviz 错误:无法导入 dot_parser,无法加载 dot 文件

ImportError:无法导入名称发现

Keras:“运行时错误:导入 pydot 失败。”安装 graphviz 和 pydot 后

keras绘图之pydot和graphviz的导入( pydot` failed to call GraphViz)

如何在 google colab 上安装 pydot 和 graphviz?