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】:即使在安装了pydot
、pydotplus
和graphviz
之后,我还是遇到了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 文件
Keras:“运行时错误:导入 pydot 失败。”安装 graphviz 和 pydot 后