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
oderDocker Containers
, obwohl ich noch nicht richtig es noch geprüft.Antworten:
Siehe: Die ausführbaren Dateien von Graphviz wurden nicht gefunden (Python 3.4) und das graphviz-Paket fügt PATH unter Windows 1666 und Problem mit graphviz 1357 keine ausführbare Datei hinzu - es handelt sich um ein wiederkehrendes Problem (für dieses Programm) mit den Einstellungen der PATH-Umgebungsvariablen. Das Installieren bestimmter Versionen oder in einer bestimmten Reihenfolge oder das manuelle Hinzufügen eines Pfads behebt das Problem.
Es ist am besten, wenn das Paket den PFAD korrekt festlegt und entfernt, wenn Sie das Paket deinstallieren (damit Sie keinen zu langen PFAD erhalten - was normalerweise nicht der Fall ist). Durch manuelles Einstellen wird ein zukünftiger Bruch verhindert und das Funktionieren erzwungen. Sie müssen den zusätzlichen Text jedoch manuell entfernen, wenn Sie das Paket deinstallieren.
Hier ist der Rat von diesen drei Links:
pip install graphviz
conda install graphviz
oder
Du musst rennen
conda install python-graphviz
anstatt
pip install graphviz
um diese Bindungen zu erhalten, die auch mit dem Graphviz-Paket von conda funktionieren.
oder
Laden Sie graphviz-2.38.msi (verwenden Sie die neueste Version) von https://graphviz.gitlab.io/_pages/Download/Download_windows.html herunter und installieren Sie es
Legen Sie die Pfadvariable fest
(a) Systemsteuerung> System und Sicherheit> System> Erweiterte Systemeinstellungen> Umgebungsvariablen> Pfad> Bearbeiten
(b) Fügen Sie 'C: \ Programme (x86) \ Graphviz2.38 \ bin' hinzu.
quelle
In meinem Fall kann ich
graphviz
ausführbare Dateien manuell findenanaconda3\Library\bin\graphviz
, aber ich würde trotzdem denGraphViz's Executables not found
Fehler erhalten.Ich habe den Vorschlag von zhangqianyuan sowie bestimmte Anweisungen für die Installation und Verwendung von Modulen erfolglos ausprobiert
python-graphviz
(offizielle Lösung, die hier ausführlich diskutiert wird ). Ich habe nur versucht, meinePATH
Variable systemweit zu manipulieren .Eine Methode, die für mich funktioniert hat, war das Einfügen dieser Zeilen in meinen Code (vor den Funktionen von graphviz):
Dies ist ein schmutziger kleiner Hack, aber es gibt einige gewisse Vorteile:
PATH
Änderungen werden lokal und bis zumos
erneuten Laden des Moduls wirksamPATH
systemweite Änderung erforderlichIch verwende Python 3.7, Windows 10, Anaconda. Graphviz wurde mit installiert
conda install python-graphviz
, aber ich glaube nicht, dass es in diesem Fall einen Unterschied gibtquelle
Wenn Sie Anaconda haben, können Sie den Conda-Manager verwenden.
Geben Sie
Conda
im Startfenster ein und versuchen Sie, es über Conda zu installieren.Zum Beispiel:
quelle
Was für meinen Anwendungsfall funktioniert hat : Generieren von Modelldiagrammen in
Django
. Es kann aber auch erweitert werden, um Diagramme für andere Anwendungen zu erstellen.Ich habe das
GraphViz
zum Anzeigen des Diagramms aus der.dot
Datei installiert . Kann von graphviz.org installiert werden .Erstellen Sie eine dem Projekt zugeordnete Punktdatei:
Oder Sie können die
.dot
Dateien für mehrere Apps erstellen . Referenz: Verwenden von Django-Erweiterungen zur Visualisierung des Datenbankdiagramms in der Django-Anwendung von Thomas .Jetzt müssen Sie nur noch anzeigen
dotfile.dot
. Wo soll ich das als Bild sehen?gvedit.exe
(ich weiß nicht, in welcher Datei sie sich befindetLinux
) im installierten Pfad der Anwendung.C:\Program Files (x86)\Graphviz2.38\bin\gvedit.exe
.Führen Sie nun die bisher erstellte Datei aus
gvedit.exe
und öffnen Sie sie.dot
.quelle
Finden:
C:\Users\zhangqianyuan\AppData\Local\Programs\Python\Python36\Lib\site-packages\pydotplus
Öffnen
graphviz.py
Finden Sie Zeile 1925 - Zeile 1972, finden Sie die Funktion:
In der Funktion finden Sie:
Fügen Sie zwischen den beiden Blöcken Folgendes hinzu (den ausführbaren Pfad Ihres Graphviz):
Nach dem Hinzufügen ist das Ergebnis:
Speichern Sie die geänderte Datei, und führen Sie sie erfolgreich aus.
Sie sollten es besser als BMP-Datei speichern, da die PNG-Datei nicht funktioniert. Bild ist hier
quelle
Ich habe das gleiche Problem, so dass ich pydotplus nur unabhängig installiert habe (pip3 install pydotplus) und pydotplus importiere, alles funktioniert gut.
quelle
Ich hatte das gleiche Problem und habe alles in diesem und anderen Foren vorgeschlagen und nichts hat geklappt. Die folgenden Anweisungen lösen dieses Problem zu 100%, wenn Sie Windows und Python 3 verwenden:
Installieren Sie
pydotplus
über Conda:conda install pydotplus
graphviz
Unabhängig installierenconda install python-graphviz
(wenn Sie diese beiden Schritte bereits ausgeführt haben, fahren Sie direkt mit Schritt 3 fort.)Angenommen, Sie haben bereits graphviz und pydotplus installiert, suchen Sie die
graphviz.py
Datei in Ihrempydotplus
Installationsverzeichnis. In meinem Fall befand sie sich im folgenden Pfad:C:\Users\Acevedo\Anaconda3\Lib\site-packages\pydotplus\graphviz.py
Öffnen
graphviz.py
Sie diesen Block und suchen Sie ihn in Zeile 606Kommentieren Sie die if / else Teil und codieren den Pfad Ihrer
graphviz
Installationsverzeichnis, in dessen Innerem die ausführbaren Dateien sein sollte (dot.exe
,circo.exe
,gvedit.exe
, etc.). Der neue Code muss folgendermaßen aussehen:Speichern Sie die
graphviz.py
Datei und alles sollte gut funktionieren :)quelle
Aktualisierung durch Ausführen in der Anaconda-Eingabeaufforderung:
bis Version 2.38 (2019.10.16-0) hat den Trick für mich gemacht.
quelle
Navigierte zu anaconda Directory
C:\ProgramData\Anaconda3\Library\bin
Mir wurde klar, dass Graphviz bereits installiert war. Ich ging nur zu
Control Panel > System and Security > System > Advanced System Settings > Environment Variables > Path > Edit
und hinzugefügt
"C:\ProgramData\Anaconda3\Library\bin\graphviz"
quelle