Python で Graphviz Executables Are Not Found エラーを解決する

Olorunfemi Akinlua 2023年6月21日
Python で Graphviz Executables Are Not Found エラーを解決する

Graphviz は、グラフの描画に役立つオープンソース ツールを備えたソフトウェア パッケージであり、Linux、Windows、および macOS で利用できます。

Python 内では、パッケージと共に Graphviz 実行可能ファイルを使用してグラフを作成できます。 ただし、さまざまな理由で使用すると、問題が発生することがよくあります。

この記事では、Python スクリプトを実行する際の Graphviz 実行可能ファイルが見つかりません エラーを解決する方法について説明します。

Graphviz をインストールして、Python の Graphviz 実行可能ファイルが見つかりません エラーを解決する

エラーの解決方法を説明する前に、Graphviz Python パッケージを使用して簡単なグラフを作成するコードを書きましょう (Graphviz python パッケージがインストールされていると仮定します)。

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)

上記のコードの出力:

// 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

エラー メッセージの重要な部分は次のとおりです。

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

問題は、Graphviz 実行可能ファイル が Python コードで使用できず、PATH 変数内に存在しないことです。 PATH 変数を使用すると、ソフトウェアの実行可能ディレクトリ以外の任意のディレクトリからソフトウェアにアクセスできます。

したがって、Graphviz をお持ちでない場合は、インストールする必要があります。 インストールされている場合は、システムの PATH に追加する必要があります。

したがって、Graphviz コードを正常に実行するには 2つのことが必要です。

  1. 図書館
  2. ソフトウェア自体

pip を介して既にライブラリがあります。

pip install graphviz

Graphviz をインストールするには、その ダウンロード ページ にアクセスし、各 OS のダウンロード手順に従ってください。 Linux OS (Ubuntu、Fedora など) の場合は、次のコマンドを使用できます。

sudo apt install graphviz
sudo yum install graphviz

macOS の場合、次のコマンドを使用できます。

sudo port install graphviz

ただし、Homebrew がインストールされている場合は、次を使用できます。

brew install graphviz

Chocolatey、Windows Package Manager、Cygwin、または一般的な Windows パッケージを介して Windows にインストールするには、さまざまな手段とプロセスがあります。 ここでは、約 4.728 MB の 標準インストール パッケージ (64 ビット バージョン 5.0.0) を使用します。

  1. インストール ファイルを開き、使用許諾契約に同意します。

    Graphviz セットアップ

  2. Graphviz をシステム PATH に追加します。これは、コードを機能させるために非常に重要です。 作業環境に応じて、システム PATH をすべてのユーザーまたは現在のユーザーに追加できます。

    以下の画像は、すべてのユーザーを選択します。

    インストール オプション

  3. インストール先を選択してインストールします。

    インストール先を選択

Graphviz が環境変数内にあることを確認するには、次の手順に従います。

  1. 環境変数 を検索します。

    環境変数を検索

  2. 強調表示されたボタン 環境変数 に移動します。

    環境変数

  3. 強調表示された変数名 Path の行に移動し、それをダブルクリックします。

    パスを選択

  4. 最近 Graphviz をインストールした場合は、下の画像のように、インストール パス (強調表示されている部分) を末尾に使用する必要があります。

    環境変数の編集

Graphviz がシステム パス内にあることを確認したので、Graphviz 実行可能ファイルがシステムの PATH にあることを確認してくださいというエラー メッセージのサブパートで示唆されているように、IDE を閉じて、Graphviz ベースのコードを再実行します。 .

以前に実行してエラーになったコードは、PDF をレンダリングしてエクスポートする必要があります。

PDF エクスポート

そして、あなたの出力はエラーなしであるはずです。

// 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

関連記事 - Python Error