Python用のgraphvizライブラリを使用しています。
ターミナルからスクリプトを実行するとグラフが作成されますが、posix_spawnを使用してCプログラムからスクリプトを開始すると、エラー メッセージが表示されます。
「ValueError: Program dot not found in path」(「neato」、「dot」、「twopi」、「circo」、「fdp」、「nop」のすべてのオプションを試しました)。
私の Python スクリプトは#!/usr/local/bin/pythonの場所を使用します。私は明示的にこのパスを使用しようとし、同じシーケンスを試しました:
import pygraphviz as pgv
G = pgv.AGraph(directed=True)
G.add_node(1)
G.get_node(1).attr['label'] = 'hi'
G.draw('test.png', prog='dot')
そしてそれは働いた
posix_spawn を使用してスクリプトを呼び出した後、graphviz ライブラリがパスを見つけられなくなった理由がわかりません。
編集:
bash_profile、bash_rc、および etc/paths にドット パスを追加した後、Python スクリプトと C プログラムの両方からパスを印刷しようとすると、/usr/bin:/bin:/usr/sbin:/sbin が表示されますが、echot $ PATH には多くの行があります。
また、Python から PATH を追加しようとしましたsys.path.append('/opt/local/bin/dot')
PS IDE として Webots を使用しています