简体   繁体   中英

pydot.InvocationException: GraphViz's executables not found

I try to run this example for decision tree learning, but get the following error message:

File "coco.py", line 18, in graph.write_pdf("iris.pdf") File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydot.py", line 1602, in lambda path, f=frmt, prog=self.prog : self.write(path, format=f, prog=prog)) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydot.py", line 1696, in write dot_fd.write(self.create(prog, format)) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydot.py", line 1727, in create 'GraphViz\\'s executables not found' ) pydot.InvocationException: GraphViz's executables not found

I saw this post about a similar error, but even when I follow their solution (uninstall and then reinstall graphviz and pydot in the opposite order) the problem continues... I'm using MacOS (Yosemite).

Any ideas? Would appreciate the help.

cel, answered this in the comment:

Graphviz is not a python tool. The python packages at pypi provide a convenient way of using Graphviz in python code. You still have to install the Graphviz executables, which are not pythonic, thus not shipped with these packages. You can install those eg with a general-purpose package manager such as homebrew

For me personally, on ubuntu 14.04, all I had to do is:

sudo apt-get install graphviz
brew install graphviz
pip install -U pydotplus

... worked for me on MacOSX

On Windows 8 this solved the same problem for me:

import os     
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'

I had the same issue when installing pydot and graphviz with pip, then I found the answerhere .

In particular, I first uninstalled pydot and graphviz which I separately installed using pip (using sudo pip uninstall pydot and the same for graphviz ). Then, I run sudo apt-get install python-pydot which fixed the issue.

conda install -c anaconda graphviz        
conda install -c anaconda pydot

For windows users:
1.install Graphviz
2.Add Graphviz path to PATH variable
3.Restart PyCharm or other compiler.

As of version 2.31, the Visual Studio package no longer alters the PATH variable or accesses the registry at all. If you wish to use the command-line interface to Graphviz or are using some other program that calls a Graphviz program, you will need to set the PATH variable yourself.

在 Ubuntu 18.04 上也为我工作:

$ sudo apt-get install graphviz  

I was facing the same issues, my problem got resolved using:

  1. Run the command sudo port install graphviz
  2. If error is coming for the port then first install port from below based on the version you are using https://guide.macports.org/chunked/installing.macports.html
  3. After installation of port run command sudo port install graphviz

Restart the python kernel if you are using iPython and run again.

On mac, use Brew to install graphviz and not pip, see links:

graphviz information: http://www.graphviz.org/download/

brew installation: https://brew.sh/

So typing the following in the terminal after you install brew should work:

brew install graphviz

I did face similar issue and the way it was corrected was by changing the path.

This is what I did :

Copy paste "graphiz" path from your computer to Environment variable>Path from the control panel

Example: Graphiz path : C:\\Apps\\Program Files\\Continuum\\Anaconda2\\Library\\bin\\graphviz)

(I had installed it on Apps folder. It could be in a diff path for you)

Setting path in Environment Variable :

Go to Control Panel>Control Panel\\System and Security\\System .Click Advanced Setting and then Advanced .You'll find Environment variables at bottom right. Click Path to edit and save it . Close your IDE and re open it .

It worked for me .

If you are on mac operating system then you might face this issue . I have installed graphviz with pip but dint work . So I had to install it with brew again and worked for me.

use following command

brew install graphviz

i would suggest avoid graphviz. use the following alternate approach

from sklearn.tree import plot_tree
plt.figure(figsize=(60,30))
plot_tree(dt, filled=True);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM