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

Posted

技术标签:

【中文标题】Keras:“运行时错误:导入 pydot 失败。”安装 graphviz 和 pydot 后【英文标题】:Keras: "RuntimeError: Failed to import pydot." after installing graphviz and pydot 【发布时间】:2016-08-21 13:37:14 【问题描述】:

我在 Windows 10 上使用 Anaconda Python 2.7

我正计划进行 Keras 可视化,所以(当 spyder 打开时)我打开了 Anaconda 命令提示符并 pip 安装了 graphviz 和 pydot。现在,当我尝试运行以下命令时:

from keras.models import Sequential

或任何形式的“来自 keras”。 ,我得到错误:

ImportError: cannot import name gof

我已经卸载并重新安装了 Keras、Graphviz 和 pydot。我正在使用theano的开发版本。我找不到修复方法。

附言

如果我卸载 graphviz 和 pydot,keras 会再次运行

编辑

卸载 anaconda 并重新安装后,包括 theano、keras、graphviz 和 pydot,我现在收到以下错误:

from keras.utils.visualize_util import plot

Using Theano backend.
Using gpu device 0: GeForce GTX 970M (CNMeM is disabled, cuDNN not available)
Traceback (most recent call last):

  File "<ipython-input-1-65016ddab3cd>", line 1, in <module>
  from keras.utils.visualize_util import plot

  File "C:\Anaconda2\lib\site-packages\keras\utils\visualize_util.py", line  8, in <module>
  raise RuntimeError('Failed to import pydot. You must install pydot'

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

我用过pip install graphvizpip install git+https://github.com/nlhepler/pydot.git

【问题讨论】:

你能从python粘贴完整的错误信息吗? Keras 现在再次运行。但是没有安装 Graphviz 和 Pydot 包。当我之前尝试在 python 上卸载它们时,每次打开它时都会崩溃,这就是为什么我不敢尝试重新安装任何一个包的原因。会不会是其中一个妨碍了 Keras? 通过您的编辑,问题现在发生了重大变化,您应该编辑标题以反映新问题。 我已经在***.com/a/47433183/1074998 用逐步调试技术回答了类似的问题 【参考方案1】:

错误信息有点误导,你可以看到here。问题是graphviz没有安装。

但是你提到graphviz是使用pip安装的。这也是一种误导,因为该 graphviz 包只是一个 python 包装器,并且必须单独安装 graphviz binaries 才能使 python 包装器工作。

【讨论】:

我有类似的问题。在许多类似问题中解决我的问题的唯一答案。谢谢! 谢谢,错误信息具有误导性,当 sudo yum install graphviz 时,它已修复 sudo apt-get install graphviz 在 Windows 10 中,从 graphviz.org/Download_windows.php 下载 .msi 安装程序,然后运行它。安装完成后,确保将 GraphViz 二进制文件 (C:\Program Files (x86)\Graphviz2.38\bin) 的路径添加到 windows PATH 变量中。您可能需要重新启动 Python 内核才能正确选择路径。 对于刚刚运行的 Windows,conda install graphvizpip install pydot【参考方案2】:

如果您使用的是 Anaconda 环境,最好通过conda install 安装pydotplusgraphviz

conda install graphviz
conda install pydotplus

注意: 您最好将您的 Keras 更新到最新版本(2.0.9+),它会自动检查并选择要使用pydotpluspydot-ngpydot 中的哪一个。 pydot-ng很久没维护了,目前只支持py3.4-和py2.7。

【讨论】:

【参考方案3】:

我所做的事情被遵循了。

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

plot_model(your_model_name, to_file='model.png')

这对我有用。 在 mac 上 Anaconda python=3.6.8

【讨论】:

扩展视图plot_model(model, to_file='model_plot.png', show_shapes=True, show_layer_names=True)【参考方案4】:

Keras 2.0.6 会查找 pydot-ng(维护得更好),如果没有找到,则使用 pydot。我通过从source 安装 pydot-ng 解决了这个问题。

【讨论】:

【参考方案5】:

我遇到了同样的问题。我在 Ubuntu 上使用 Anaconda python。但似乎 Keras 使用系统的 python 而不是 Anaconda python。最初,我使用 conda 安装了 pydot 和 graphviz。当我在系统的 python 中安装 pydot 和 graphviz(使用 /usr/bin/pip install pydot)时,它工作正常。

【讨论】:

但我在 Windows 上使用 Anaconda。我知道在我的情况下有一条蟒蛇。即使那样它也失败了。关于什么可能是错误的任何想法?【参考方案6】:

在osx中​​通过brew安装graphvizbrew install graphviz,ubuntu使用apt-get install graphviz,不需要通过pip安装graphviz。

【讨论】:

这不是问题的答案。 @phd 你试过了吗? “pip install pydot”然后“brew install graphviz”,它会工作 至少对于 Ubuntu 机器来说,这就像一个魅力 如果还是不行,执行“pip install pydot-ng”【参考方案7】:

我的 Keras(没有 anaconda)也有类似的问题。我已经用这种方式解决了我的问题

sudo pip install pydot
sudo pip install graphviz
sudo add-apt-repository ppa:gviz-adm/graphviz-dev
sudo apt-get update
sudo apt-get install graphviz-dev

【讨论】:

【参考方案8】:

1)Conda 安装 graphviz 2)pip install graphviz 3)pip 安装 pydot 那么:

import os os.environ["PATH"] += os.pathsep + AppData\\Local\\Continuum\\anaconda3\\envs\\tensorflow\\Library\\bin\\graphviz'

【讨论】:

【参考方案9】:

对于 Mac 上的 Anaconda:

使用 conda run 安装这个包:

conda install -c anaconda graphviz

【讨论】:

【参考方案10】:

    graphviz 安装到系统中。从here 下载包,或在 Mac 上:

    brew install graphviz
    

    安装 python pydot-ng 和 graphviz 包装器。

    pip install pydot-ng graphviz
    conda install -c anaconda pydot-ng #Anaconda user
    

    在您的代码中使用pydot-ng

    import pydot_ng as pydot
    

    如果 Keras 可视化 utils 仍然使用 pydot,请尝试将 visualize_util.py 中的 import pydot 更改为 import pydot_ng as pydot

【讨论】:

【参考方案11】:

以下内容在运行在 jupyter/tensorflow-notebook docker 容器中的 jupyter 笔记本中运行。

!conda install -y graphviz pydotplus

import pydotplus
import keras.utils
keras.utils.vis_utils.pydot = pydotplus
keras.utils.plot_model(your_model_name, to_file='model.png', show_shapes=True)

你需要告诉 keras 使用 pydotplus

【讨论】:

【参考方案12】:

如果你是通过 pip 安装的,它与 pydot 或 graphviz 无关。

你应该去下载graphviz brinary并安装。

不要忘记将 bin 文件夹添加到 PATH:C:/Program Files (x86)/Graphviz2.38/bin/

然后关闭并重新打开您的控制台。

【讨论】:

【参考方案13】:

安装pydot和graphviz并将graphviz添加到路径后,您可以重启 IDE或终端。 see here.

【讨论】:

以上是关于Keras:“运行时错误:导入 pydot 失败。”安装 graphviz 和 pydot 后的主要内容,如果未能解决你的问题,请参考以下文章

为啥keras安装以后导入失败?

keras如何快速入门

keras与tensorflow.python.keras - 使用哪一个?

keras 与 tensorflow.python.keras - 使用哪一个?

keras是啥

Tensorflow+Keras用Tensorflow.keras的方法替代keras.layers.merge