Estou tentando fazer esses pacotes funcionarem há algum tempo, mas sem sucesso. Basicamente, o erro é:
GraphViz's Executables not found
EDIT : eu não tinha postado um terminal log
com o erro originalmente. Estou usando Ubuntu
agora para não conseguir reproduzir exatamente o mesmo erro que cometi no passado (um ano atrás, tão distante no passado ...). No entanto, estou enfrentando um erro semelhante - se não o mesmo - na minha configuração atual; mesmo enquanto estiver usando um ambiente virtual com pipenv
. O erro parece vir de linhas que foram descritas na resposta de @ 张 乾元 :
Traceback (most recent call last):
File "example.py", line 49, in <module>
Image(graph.create_png())
File "/home/philippe/.local/lib/python3.6/site-packages/pydotplus/graphviz.py", line 1797, in <lambda>
lambda f=frmt, prog=self.prog: self.create(format=f, prog=prog)
File "/home/philippe/.local/lib/python3.6/site-packages/pydotplus/graphviz.py", line 1960, in create
'GraphViz\'s executables not found')
pydotplus.graphviz.InvocationException: GraphViz's executables not found
Eu tentei instalar GraphViz
via 2 maneiras diferentes: via pip install graphviz
e através do .msi
pacote (e também tentei instalar pydot
, pydotplus
e graphviz
em muitas ordens diferentes).
O código que estou tentando executar é simplesmente um dot-to-png
conversor para o conjunto de dados Iris .
from sklearn.tree import DecisionTreeClassifier
import sklearn.datasets as datasets
from sklearn.externals.six import StringIO
from sklearn.tree import export_graphviz
import pandas as pd
import pydotplus
from IPython.display import Image
iris = datasets.load_iris()
df = pd.DataFrame(iris.data, columns = iris.feature_names)
y = iris.target
dtree = DecisionTreeClassifier()
dtree.fit(df,y)
dot_data = StringIO()
export_graphviz(
dtree,
out_file = dot_data,
filled = True,
rounded = True,
special_characters = True
)
graph_1 = pydotplus.graph_from_dot_data(dot_data.getvalue())
Image(graph_1.create_png())
Dentro Jupyter Notebooks
e fora Atom
, o sistema parece estar procurando por GraphViz
dentro pydotplus
, como aponta ~\Anaconda3\lib\site-packages\pydotplus\graphviz.py
. Não deveria ser o contrário?
Por fim, quero apenas salientar que já tentei adicionar GraphViz
o caminho do sistema ao PATH
uso C:\Users\Philippe\Anaconda3\Library\bin\graphviz
.
pipenv
, virtualenv
ou Docker Containers
, embora eu ainda não o tenha verificado adequadamente.