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 graphviz
和pip 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 graphviz
和 pip install pydot
【参考方案2】:
如果您使用的是 Anaconda 环境,最好通过conda install
安装pydotplus
和graphviz
。
conda install graphviz
conda install pydotplus
注意:
您最好将您的 Keras 更新到最新版本(2.0.9+),它会自动检查并选择要使用pydotplus
、pydot-ng
、pydot
中的哪一个。 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与tensorflow.python.keras - 使用哪一个?