所以我已经安装了 anytree 包(经过很大的努力;我不得不在我的系统上添加一些环境变量)。完成此操作后,我可以使用 anytree 包的几乎所有功能——只是不是我想要的。我希望将 graphviz 与 anytree 包结合使用,以便使用“DotExporter”命令绘制树。
我已经安装了graphviz;它的路径是 C:\Users\joel\Anaconda3_2\Lib\site-packages\graphviz,我还在我的 Python 文档中添加了“from anytree.exporter import DotExporter”这行代码(除了需要的其他 anytree 导入做树)。
因此,在定义了我的树的根节点“root”之后,我现在应该能够使用“DotExporter(root).to_picture('root.png')”命令中的任何一个来生成树的 png 和点文件,但是我收到以下错误消息:
'FileNotFoundError: [WinError 2] 系统找不到指定的文件'。
有人知道发生了什么吗?我正在使用带有引擎 Spyder 的 Python 3.6.2 作为 Anaconda 发行版的一部分(我有 Anaconda 3.2)。我 99% 确定我拥有最新版本的 anytree 和 graphviz。
更新:所以我了解到 Anaconda 和 graphviz 之间存在很大的兼容性问题大约一年了,并认为这就是问题所在。在尝试了人们建议的所有解决方案后,我仍然无法让我的程序正常工作,所以我最终卸载了 Anaconda,而是开始将 PyCharm 与标准 Python 解释器一起使用。但是该程序仍然无法运行,因此即使 Anaconda 和 graphviz 之间存在兼容性问题,但事实证明这不是问题所在。我在我室友的机器上尝试了这个程序,它也使用了 Anaconda,得到了同样的错误。
最后我找到了以下解决方法:我无法让 'DotExporter(root).to_picture('root.png')' 命令工作,但 'DotExporter(root).to_dotfile('root.dot') ' 命令有效。“.dot”文件包含代码,可以在记事本中打开(其他文字处理软件也可以)。因此,我只需要找到一种使用点文件而不是使用“DotExporter(root).to_picture('root.png')”命令来绘制树的方法。最简单的方法是通过在线工具http://www.webgraphviz.com/和http://sandbox.kidstrythisathome.com/erdos/中的任何一个。只需在记事本中打开您的点文件,复制其内容并将其粘贴到网站并点击生成。