带有Python AnyTree包的树图

时间:2018-12-28 04:09:24

标签: python-3.x anytree

我需要使用python AnyTree包从字典中生成树。所以我有一个像下面这样的字典。

TEMPLATES

此字典会随着程序的执行而增长。我现在面临的问题是,当我尝试使用data = {'name': 'xyz', 'children': [{'name': 'node1', 'children': [{'name': 'node2'}]}]} 将树导出为png时,它会引发文件未找到的错误,如下所示

DotExporter(root).to_picture("data.png")

我安装了graphviz软件包,并且在Windows上使用python 3.7。 但是,我可以使用 Traceback (most recent call last):File "C:/Users/.../data_modeling.py", line 88, in<module>creating_tree(main) File "C:/Users/.../data_modeling.py", line 66, in creating_tree DotExporter(root).to_picture("data.png") File "C:\Users\...\AppData\Local\Programs\Python\Python37-32\lib\site-packages\anytree\exporter\dotexporter.py", line 229, in to_picture check_call(cmd) File "C:\Users\...\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 323, in check_call retcode = call(*popenargs, **kwargs) File "C:\Users\...\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 304, in call with Popen(*popenargs, **kwargs) as p: File "C:\Users\...\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 756, in __init__ restore_signals, start_new_session) File "C:\Users\...\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 1155, in _execute_child startupinfo) FileNotFoundError: [WinError 2] The system cannot find the file specified 将树导出为点文件,并使用在线转换器将点文件转换为图像。 但是我需要从程序中将其导出为png。

我已经在Google上搜索了类似的问题,并在那里做了所有建议和解决方案。任何帮助或建议都很好,任何其他树图工具也都可以。

1 个答案:

答案 0 :(得分:0)

找到了解决方案。

问题在于graphviz python软件包。使用pip安装graphviz时,graphviz python包装器不包含graphviz二进制文件。

因此,要解决此问题,您需要从他们的网站上手动下载graphviz并将其设置为path或使用conda安装graphviz。

您可以将pydot用作png导出器,也可以使用点文件通过pydot生成png。也可以通过pip安装pydot。