Search code examples
pythonpydot

Python graphviz - pydot.Dot.write_png doesn't work on Windows


I am using Python to create a graph via pydot.Dot.

When I want to write the graph to PNG, I use pydot.Dot.write_png(...). Unfortunately, it fails at the stage of finding graphviz (in a function called find_graphviz).

I tried installing it as a software but I don't see how it can be imported to Python.

How can I solve this problem?


Solution

  • Try manually adding the Graphviz\bin folder to your systems PATH.

    >>> import pydot
    >>> pydot.find_graphviz()
    {'dot': 'C:\\Program Files (x86)\\Graphviz 2.28\\bin\\dot.exe'} #...
    >>> print pydot.find_graphviz.__doc__
    """
    Locate Graphviz's executables in the system.
    
        Tries three methods:
    
        First: Windows Registry (Windows only)
        This requires Mark Hammond's pywin32 is installed.
    
        Secondly: Search the path
        It will look for 'dot', 'twopi' and 'neato' in all the directories
        specified in the PATH environment variable.
    
        Thirdly: Default install location (Windows only)
        It will look for 'dot', 'twopi' and 'neato' in the default install
        location under the "Program Files" directory.
    
        It will return a dictionary containing the program names as keys
        and their paths as values.
    
        If this fails, it returns None.
    """