【问题标题】:Keras: "RuntimeError: Failed to import pydot." after installing graphviz and pydotKeras:“运行时错误:导入 pydot 失败。”安装 graphviz 和 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?
  • 通过您的编辑,问题现在发生了重大变化,您应该编辑标题以反映新问题。
  • 我已经在stackoverflow.com/a/47433183/1074998 用逐步调试技术回答了类似的问题

标签: python graphviz theano keras pydot


【解决方案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】:
            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 可视化 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.

                  【讨论】:

                    猜你喜欢
                    • 2018-07-08
                    • 2018-09-21
                    • 2018-05-16
                    • 2019-08-20
                    • 2020-06-10
                    • 2015-02-13
                    • 2018-09-25
                    • 2021-03-07
                    相关资源
                    最近更新 更多