Ich habe schon seit einiger Zeit versucht, diese Pakete zum Laufen zu bringen, aber ohne Erfolg. Grundsätzlich ist der Fehler:
GraphViz's Executables not found
EDIT : Ich hatte log
ursprünglich kein Terminal mit dem Fehler gepostet . Ich verwende es Ubuntu
jetzt, damit ich nicht genau den Fehler reproduzieren kann, den ich in der Vergangenheit erhalten habe (vor einem Jahr, so weit weg in der Vergangenheit ...). In meinem aktuellen Setup ist jedoch ein ähnlicher - wenn nicht derselbe - Fehler aufgetreten. auch bei Verwendung einer virtuellen Umgebung mit pipenv
. Der Fehler scheint von Zeilen zu stammen, die in der Antwort von @ 张 乾元 beschrieben wurden :
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
Ich habe versucht, GraphViz
über zwei verschiedene Arten zu installieren : über pip install graphviz
und durch das .msi
Paket (und auch versucht zu installieren pydot
, pydotplus
und graphviz
in vielen verschiedenen Reihenfolgen).
Der Code, den ich ausführen möchte, ist einfach ein dot-to-png
Konverter für den Iris-Datensatz .
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())
In Jupyter Notebooks
und in Atom
scheint das System nach GraphViz
innen zu suchen pydotplus
, wie es zeigt ~\Anaconda3\lib\site-packages\pydotplus\graphviz.py
. Sollte es nicht umgekehrt sein?
Schließlich möchte ich nur darauf hinweisen , dass ich schon versucht habe , das Hinzufügen GraphViz
‚s Pfad zum System ist PATH
unter Verwendung C:\Users\Philippe\Anaconda3\Library\bin\graphviz
.
pipenv
, virtualenv
oder Docker Containers
, obwohl ich noch nicht richtig es noch geprüft.