【问题标题】:pydot.InvocationException: GraphViz's executables not foundpydot.InvocationException:未找到 GraphViz 的可执行文件
【发布时间】:2015-02-24 08:08:42
【问题描述】:

我尝试运行this example 进行决策树学习,但收到以下错误消息:

文件“coco.py”,第 18 行,在 graph.write_pdf("iris.pdf") 文件 "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydot.py", 第 1602 行,在 lambda 路径, f=frmt, prog=self.prog : self.write(path, format=f, prog=prog)) 文件 "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydot.py", 第 1696 行,写入 dot_fd.write(self.create(prog, format)) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydot.py”, 第 1727 行,在创建中 'GraphViz\'s executables not found' ) pydot.InvocationException: GraphViz's executables not found

我看到this post 有类似的错误,但即使我遵循他们的解决方案(卸载然后以相反的顺序重新安装 graphviz 和 pydot),问题仍然存在......我使用的是 MacOS(优胜美地)。

有什么想法吗?非常感谢您的帮助。

【问题讨论】:

  • 请在您的问题中添加您如何安装 graphviz(例如 homebrew、macports 等)。您的 PATH 变量似乎存在问题。
  • 我用过 pip,所以没什么特别的...(sudo pip install graphviz)。
  • 我可以通过手动更改路径变量来修复它吗?如果可以,怎么做?
  • Graphviz 不是 python 工具。 pypi 的 python 包提供了一种在 python 代码中使用 Graphviz 的便捷方式。您仍然需要安装Graphviz 可执行文件,它们不是pythonic,因此这些软件包不附带。您可以安装这些,例如使用通用包管理器,例如 homebrew
  • 太棒了!我永远的感激之情-谢谢!

标签: python scipy graphviz pydot


【解决方案1】:

cel,在评论中回答了这个问题:

Graphviz 不是 Python 工具。 pypi 的 python 包提供了一个 在 python 代码中使用 Graphviz 的便捷方式。你还是要 安装 Graphviz 可执行文件,它们不是 pythonic,因此不是 随这些包裹一起提供。您可以安装这些,例如有一个 通用包管理器,例如自制软件

就我个人而言,在 ubuntu 14.04 上,我所要做的就是:

sudo apt-get install graphviz

【讨论】:

    【解决方案2】:
    brew install graphviz
    pip install -U pydotplus
    

    ...在 MacOSX 上为我工作

    【讨论】:

    • 此解决方案适用于 MacOS Mojave 版本 10.14.5
    【解决方案3】:

    在 Windows 8 上,这为我解决了同样的问题:

    import os     
    os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'
    

    【讨论】:

    • 一个更持久的解决方案是在适当的配置文件中设置环境的PATH变量(在*nix系统上这通常是~/.bashrc)。
    【解决方案4】:

    我在用pip安装pydot和graphviz时遇到了同样的问题,然后我找到了答案here

    特别是,我首先卸载了我使用 pip 单独安装的 pydot 和 graphviz(使用 sudo pip uninstall pydotgraphviz 相同)。然后,我运行 sudo apt-get install python-pydot 解决了这个问题。

    【讨论】:

      【解决方案5】:
      conda install -c anaconda graphviz        
      conda install -c anaconda pydot
      

      【讨论】:

      • 这对我来说就像在 iOS 上的魅力一样。谢谢,@scarin
      • 注意 mac 用户,这是你的答案 - 谢谢,吓人!!
      • Mac 用户不要这样做,你已经重新安装了所有其他模块。
      【解决方案6】:

      对于 Windows 用户:
      1.安装 Graphviz
      2.将Graphviz路径添加到PATH变量
      3.重启 PyCharm 或其他编译器。

      从 2.31 版开始,Visual Studio 包不再更改 PATH 变量或访问注册表。如果您希望使用 Graphviz 的命令行界面或使用其他调用 Graphviz 程序的程序,则需要自己设置 PATH 变量。

      【讨论】:

        【解决方案7】:

        在 Ubuntu 18.04 上也为我工作:

        $ sudo apt-get install graphviz  
        

        【讨论】:

          【解决方案8】:

          如果您使用的是 mac 操作系统,那么您可能会遇到这个问题。我已经用 pip 安装了 graphviz ,但是可以正常工作。所以我不得不再次用 brew 安装它并为我工作。

          使用以下命令

          brew install graphviz

          【讨论】:

          • arch -arm64 brew install graphviz - 谢谢
          【解决方案9】:

          我遇到了同样的问题,我的问题得到了解决:

          1. 运行命令sudo port install graphviz
          2. 如果端口出现错误,则首先根据您使用的版本从下面安装端口 https://guide.macports.org/chunked/installing.macports.html
          3. 安装后端口运行命令sudo port install graphviz

          如果您正在使用 iPython,请重新启动 python 内核并再次运行。

          【讨论】:

            【解决方案10】:

            在 mac 上,使用 Brew 安装 graphviz 而不是 pip,请参见链接:

            graphviz 信息:http://www.graphviz.org/download/

            brew 安装:https://brew.sh/

            所以安装 brew 后在终端中输入以下内容应该可以工作:

            brew install graphviz
            

            【讨论】:

              【解决方案11】:

              我确实遇到了类似的问题,纠正的方法是改变路径。

              这就是我所做的:

              将“graphiz”路径从您的计算机复制到环境变量>控制面板中的路径

              示例: Graphiz 路径:C:\Apps\Program Files\Continuum\Anaconda2\Library\bin\graphviz)

              (我已经将它安装在 Apps 文件夹中。它可能在你的不同路径中)

              在环境变量中设置路径:

              转到控制面板>控制面板\系统和安全\系统。单击高级设置,然后单击高级。您将在右下角找到环境变量。单击路径进行编辑并保存。关闭您的 IDE 并重新打开它。

              它对我有用。

              【讨论】:

                【解决方案12】:

                我建议避免使用graphviz。 使用以下替代方法

                from sklearn.tree import plot_tree
                plt.figure(figsize=(60,30))
                plot_tree(dt, filled=True);
                

                【讨论】:

                  猜你喜欢
                  • 2016-12-18
                  • 2018-07-29
                  • 2023-03-06
                  • 2017-09-18
                  • 2021-03-22
                  • 2015-04-03
                  • 2018-01-25
                  • 2017-11-05
                  • 1970-01-01
                  相关资源
                  最近更新 更多