如何使用Graphviz与Anaconda/Spyder?

Sco*_*t G 6 graphviz python-3.x spyder anaconda

我试图使用Spyder的Graphviz(通过Anaconda安装).我无法理解执行此操作所需的内容以及如何加载包,设置变量等.

我直接采用新的Python方法,Graphviz和Spyder用户会很棒!

另外,除了创建和运行Graphviz之外,如何使用预生成的.gv文件从python运行Graphviz?

Sco*_*t G 18

以下是适合我的步骤.这些信息大部分可用,但分布在几个不同的StackOverflow帖子和其他网站上.我希望这可以作为一个良好的一站式资源.

  1. 转到Graphviz网站并下载并安装到您的计算机(不需要为所有用户安装).

  2. Continuum网站下载并安装Anaconda3.5 .

  3. 将Graphviz添加到环境变量"Path":

    • 转到Computer > Properties > Advanced system settings > Environment Variables然后在系统变量框中找到"路径".单击路径,然后单击编辑.
    • 附加;C:\Program Files (x86)\Graphviz2.38\bin到Path中已存在的许多路径的末尾.注意,Graphviz的路径可能与您不同,因此请确保放置正确的路径.文件夹"bin"应包含许多文件,包括dot.exe应用程序.
    • 要检查安装,请转到命令提示符并输入:dot -V这应返回已安装的Graphviz版本.例如,dot - graphviz version 2.38.0.如果这不起作用,请输入set并查找Graphviz路径.
  4. 转到Anaconda命令提示符并输入: pip install graphviz

  5. 如果尚未打开,请重新启动Spyder或启动它.

  6. 现在在你的Python脚本中添加 import graphviz

  7. 下面是如何使用Graphviz教程中的Graphviz创建图形并进行渲染的示例

    import graphviz
    
    dot = graphviz.Digraph(comment='The Round Table')
    
    dot.node('A', 'King Arthur')
    dot.node('B', 'Sir Bedevere the Wise')
    dot.node('L', 'Sir Lancelot the Brave')
    dot.edges(['AB', 'AL'])
    dot.edge('B', 'L', constraint='false')
    
    dot.render('FileName', view=True)
    
    Run Code Online (Sandbox Code Playgroud)
  8. 下面是如何从预先生成的.gv文件创建图表的示例(至少是探索的起点)

    from graphviz import Source
    Source.from_file('file.gv')
    
    Run Code Online (Sandbox Code Playgroud)

有用的链接:

开始使用Graphviz和Python

Graphviz属性

点指南

另一个StackOverflow问题

使用的版本:

Anaconda 3.5(配备Spyder)

Graphviz 2.38


end*_*ith 8

我对另一个问题给予了奖励,但后来意识到有更好的方法:

  • conda install graphviz 安装 GraphViz 的二进制文件,(所以你不需要访问 GraphViz 网站,它们可能会以通常的 conda 方式保持更新。)
  • conda install python-graphviz为 GraphViz 安装 Python 前端。(这与 相同pip install graphviz,这导致了很大的混乱。)

graphviz 前端的 conda 版本已被修补以支持由 condagraphviz安装的二进制文件,因此对于 graphviz 本身,这应该是您所需要的。

pydot但是,对于,在 Windows 中,除非您将这些二进制文件包含在 PATH 中,否则这将不起作用。您可以在脚本中使用以下命令临时执行此操作

import os
os.environ["PATH"] += os.pathsep + 'PATH_STRING'
Run Code Online (Sandbox Code Playgroud)

在调用pydot.

PATH_STRING 要么C:\Anaconda3\envs\ENV_NAME\Library\bin\graphviz用于特定的 conda 环境,要么C:\Anaconda3\Library\bin\graphviz用于默认环境。

(我不得不为 Tensorflow 安装一个 py3.6 环境,因为它还不支持 py3.7 并且conda install tensorflow挂了几个小时,试图弄清楚如何降级我系统上的每个包。(可能其他安装 GraphViz 的人正在做所以出于同样的原因。))

  • @endolith,是的,是 pydot 坏了。我打开[这个问题](https://github.com/AnacondaRecipes/pydot-feedstock/issues/1)要求Anaconda人员修复它。 (2认同)