Граф дерева с пакетом Python AnyTree - PullRequest
0 голосов
/ 28 декабря 2018

Мне нужно сгенерировать дерево из словаря с пакетом Python AnyTree. Поэтому у меня есть словарь, подобный структуре ниже.

data = {'name': 'xyz',
        'children': [{'name': 'node1',
                      'children': [{'name': 'node2'}]}]}

Этот словарь может расти по мере выполнения программы.сейчас, когда я пытаюсь экспортировать дерево как png с DotExporter(root).to_picture("data.png"), он выдает ошибку "файл не найден", как показано ниже

    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

У меня установлен пакет graphviz, и я на Python 3.7 с Windows.однако, используя DotExporter(root).to_dotfile('root.dot'), я могу экспортировать дерево в виде точечного файла, а с помощью онлайн-конвертера я могу преобразовать точечный файл в изображение.но мне нужно экспортировать это как png из моей программы.

Я уже гуглил на подобные проблемы и сделал все предложения и решения там. любая помощь или предложение было бы здорово, любой другой инструмент построения дерева также мог быбыть в порядке.

1 Ответ

0 голосов
/ 09 января 2019

нашел решение ..

проблема с пакетом graphviz python. Когда вы устанавливаете graphviz с помощью pip, оболочка Graphviz Python не содержит двоичных файлов graphviz.

, поэтому для решения этой проблемывам нужно вручную загрузить graphviz с их веб-сайта и указать его путь или установить graphviz с помощью conda.

В качестве альтернативы этому вы можете использовать pydot в качестве экспортера png. И вы можете использовать файл точек для генерации png с pydot.Также можно установить pydot с помощью pip.

...