Beheben Sie den Fehler `Ausführbare Graphviz-Dateien werden nicht gefunden` in Python

Olorunfemi Akinlua 15 Februar 2024
Beheben Sie den Fehler `Ausführbare Graphviz-Dateien werden nicht gefunden` in Python

Graphviz ist ein Softwarepaket mit Open-Source-Tools, die beim Zeichnen von Diagrammen helfen und unter Linux, Windows und macOS verfügbar sind.

Innerhalb von Python können wir Diagramme mit den ausführbaren Graphviz-Dateien neben dem Paket erstellen. Menschen geraten jedoch häufig aus verschiedenen Gründen in Probleme, wenn sie es verwenden.

In diesem Artikel wird erläutert, wie Sie den Fehler Graphviz executables are not found beheben, wenn Sie unsere Python-Skripte ausführen.

Installieren Sie Graphviz, um den Fehler Graphviz executables are not found in Python zu lösen

Bevor wir Ihnen zeigen, wie Sie den Fehler beheben können, lassen Sie uns einen Code schreiben, um ein einfaches Diagramm mit dem Graphviz-Python-Paket zu erstellen (vorausgesetzt, Sie haben das Graphviz-Python-Paket installiert).

import graphviz

dot = graphviz.Digraph(comment="The Round Table")
dot.node("A", "King Arthur")
dot.node("B", "Sir Bedevere the Wise")
dot.node("L", "Sir Lancelot the Brave")
dot.edges(["AB", "AL"])
dot.edge("B", "L", constraint="false")
print(dot.source)
dot.render("doctest-output/round-table.gv", view=True)

Die Ausgabe des obigen Codes:

// The Round Table
digraph {
    A [label="King Arthur"]
    B [label="Sir Bedevere the Wise"]
    L [label="Sir Lancelot the Brave"]
    A -> B
    A -> L
    B -> L [constraint=false]
}

Traceback (most recent call last):
  File "C:\Python310\lib\site-packages\graphviz\backend\execute.py", line 81, in run_check
    proc = subprocess.run(cmd, **kwargs)
  File "C:\Python310\lib\subprocess.py", line 501, in run
    with Popen(*popenargs, **kwargs) as process:
  File "C:\Python310\lib\subprocess.py", line 969, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Python310\lib\subprocess.py", line 1438, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "c:\Users\akinl\Documents\HTML\python\graphz.py", line 11, in <module>
    dot.render('doctest-output/round-table.gv', view=True)
  File "C:\Python310\lib\site-packages\graphviz\_tools.py", line 171, in wrapper
    return func(*args, **kwargs)
  File "C:\Python310\lib\site-packages\graphviz\rendering.py", line 122, in render
    rendered = self._render(*args, **kwargs)
  File "C:\Python310\lib\site-packages\graphviz\_tools.py", line 171, in wrapper
    return func(*args, **kwargs)
  File "C:\Python310\lib\site-packages\graphviz\backend\rendering.py", line 324, in render
    execute.run_check(cmd,
  File "C:\Python310\lib\site-packages\graphviz\backend\execute.py", line 84, in run_check
    raise ExecutableNotFound(cmd) from e
graphviz.backend.execute.ExecutableNotFound: failed to execute WindowsPath('dot'), make sure the Graphviz executables are on your systems' PATH

Der wichtige Teil der Fehlermeldung ist unten:

graphviz.backend.execute.ExecutableNotFound: failed to execute WindowsPath('dot'), make sure the Graphviz executables are on your systems' PATH

Das Problem ist, dass die Graphviz executables für den Python-Code nicht verfügbar sind und nicht in der PATH-Variablen vorhanden sind. Die Variable PATH ermöglicht uns den Zugriff auf Software aus jedem Verzeichnis außer dem ausführbaren Verzeichnis der Software.

Wenn Sie Graphviz nicht haben, müssen Sie es daher installieren. Sie müssen es zum PATH Ihres Systems hinzufügen, wenn Sie es installiert haben.

Folglich benötigen wir zwei Dinge, um einen Graphviz-Code erfolgreich auszuführen.

  1. Die Bibliothek
  2. Die Software selbst

Die Bibliothek haben wir bereits via pip:

pip install graphviz

Um Graphviz zu installieren, gehen Sie zu seiner Download-Seite und befolgen Sie die Download-Anweisungen für jedes Betriebssystem. Für Linux-Betriebssysteme (z. B. Ubuntu, Fedora) können Sie die folgenden Befehle verwenden:

sudo apt install graphviz
sudo yum install graphviz

Für macOS können Sie den folgenden Befehl verwenden.

sudo port install graphviz

Wenn Sie jedoch Homebrew installiert haben, können Sie Folgendes verwenden:

brew install graphviz

Es gibt verschiedene Mittel und Prozesse, um es für Windows zu installieren, über Chocolatey, Windows Package Manager, Cygwin oder typische Windows-Pakete. Hier verwenden wir das typische Installationspaket (64-Bit-Version 5.0.0), das ungefähr 4,728 MB groß ist.

  1. Öffnen Sie die Installationsdatei und stimmen Sie der Lizenzvereinbarung zu.

    Graphviz-Setup

  2. Fügen Sie Graphviz zum System PATH hinzu, was sehr wichtig ist, damit Ihr Code funktioniert. Abhängig von Ihrer Arbeitsumgebung können Sie das System PATH für alle Benutzer oder aktuelle Benutzer hinzufügen.

    Das folgende Bild wird für alle Benutzer ausgewählt.

    Installationsoptionen

  3. Installationsverzeichnis auswählen und installieren.

    Wählen Sie Installationsort

Um zu überprüfen, ob sich Graphviz in unserer Umgebungsvariablen befindet, können wir die folgenden Schritte ausführen:

  1. Suchen Sie nach Umgebungsvariablen.

    Suchen Sie nach Umgebungsvariablen

  2. Gehen Sie auf die markierte Schaltfläche Umgebungsvariablen.

    Umgebungsvariablen

  3. Gehen Sie in die markierte Zeile mit dem Variablennamen Path und doppelklicken Sie darauf.

    Wählen Sie Pfad aus

  4. Wenn Sie Graphviz kürzlich installiert haben, sollten Sie den Installationspfad (hervorgehoben) am Ende verwenden, wie im Bild unten

    Umgebungsvariable bearbeiten

Nachdem wir nun überprüft haben, dass sich Graphviz innerhalb unseres Systempfads befindet, wie in einem Unterabschnitt der Fehlermeldung vorgeschlagen, stellen Sie sicher, dass sich die ausführbaren Graphviz-Dateien auf dem PATH Ihres Systems befinden, schließen Sie Ihre IDE und führen Sie Ihren Graphviz-basierten Code erneut aus .

Der zuvor ausgeführte Code, der zu einem Fehler führte, sollte jetzt als PDF gerendert und exportiert werden.

PDF-Export

Und Ihre Ausgabe sollte ohne Fehler sein.

// The Round Table
digraph {
    A [label="King Arthur"]
    B [label="Sir Bedevere the Wise"]
    L [label="Sir Lancelot the Brave"]
    A -> B
    A -> L
    B -> L [constraint=false]
}
Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

Verwandter Artikel - Python Error