Keras:" RuntimeError:无法导入pydot。"安装graphviz和pydot后

时间:2016-04-27 10:08:21

标签: python graphviz theano keras pydot

我在Windows 10上使用Anaconda Python 2.7

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

from keras.models import Sequential

或来自keras的任何类型的"" ,我收到错误:

ImportError: cannot import name gof

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

P.S

如果我卸载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

13 个答案:

答案 0 :(得分:36)

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

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

答案 1 :(得分:5)

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

conda install graphviz
conda install pydotplus

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

答案 2 :(得分:3)

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

答案 3 :(得分:3)

Keras 2.0.6寻找pydot-ng(维护得更好)然后如果找不到,则回到pydot上。我通过从source安装pydot-ng解决了这个问题。

答案 4 :(得分:2)

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

答案 5 :(得分:1)

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

mongoose.Promise = global.Promise;
var mongoConnectOpts = { 
    poolSize: 50,
    reconnectTries: 10,
    reconnectInterval: 500, 
    socketOptions: {
       keepAlive: 300000, connectTimeoutMS: 30000
    }
}
mongoose.connect(config.connectionString, { server: mongoConnectOpts, replset: mongoConnectOpts });

答案 6 :(得分:1)

我的所作所为。

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

答案 7 :(得分:0)

对于Mac上的Anaconda:

使用conda run:

安装此软件包

conda install -c anaconda graphviz

答案 8 :(得分:0)

  1. graphviz安装到系统中。从here或在Mac上下载软件包:

    brew install graphviz
    
  2. 安装python pydot-ng和graphviz包装器。

    pip install pydot-ng graphviz
    conda install -c anaconda pydot-ng #Anaconda user
    
  3. 在代码中使用pydot-ng

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

答案 9 :(得分:0)

1)Conda安装graphviz
2)pip安装graphviz
3)pip安装pydot
然后:

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

答案 10 :(得分:0)

以下内容在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

答案 11 :(得分:0)

如果通过pip安装,则与pydot或graphviz无关。

您应该下载graphviz brinary并安装。

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

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

答案 12 :(得分:0)

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