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つのことが必要です。
- 図書館
- ソフトウェア自体
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) を使用します。
-
インストール ファイルを開き、使用許諾契約に同意します。
-
Graphviz をシステム
PATH
に追加します。これは、コードを機能させるために非常に重要です。 作業環境に応じて、システムPATH
をすべてのユーザーまたは現在のユーザーに追加できます。以下の画像は、すべてのユーザーを選択します。
-
インストール先を選択してインストールします。
Graphviz が環境変数内にあることを確認するには、次の手順に従います。
-
環境変数
を検索します。 -
強調表示されたボタン
環境変数
に移動します。 -
強調表示された変数名
Path
の行に移動し、それをダブルクリックします。 -
最近 Graphviz をインストールした場合は、下の画像のように、インストール パス (強調表示されている部分) を末尾に使用する必要があります。
Graphviz がシステム パス内にあることを確認したので、Graphviz 実行可能ファイルがシステムの PATH にあることを確認してください
というエラー メッセージのサブパートで示唆されているように、IDE を閉じて、Graphviz ベースのコードを再実行します。 .
以前に実行してエラーになったコードは、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 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
- AttributeError の解決: 'list' オブジェクト属性 'append' は読み取り専用です
- AttributeError の解決: Python で 'Nonetype' オブジェクトに属性 'Group' がありません
- AttributeError: 'generator' オブジェクトに Python の 'next' 属性がありません
- AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません
- AttributeError: Int オブジェクトに属性がありません
- AttributeError: Python で 'Dict' オブジェクトに属性 'Append' がありません