从 C 生成 Python 脚本时出现 graphviz 问题
graphviz issue when spawning Python script from C
我正在为 Python.
使用 graphviz 库
当我从终端 运行 脚本时,图表被创建,但是当我从 C 启动脚本时使用 posix_spawn 的程序,我收到错误消息说
"ValueError: Program dot not found in path" (I have tried all options: '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 后,我得到 /usr/bin:/bin:/usr/sbin:/sbin我尝试从 Python 脚本和 C 程序打印我的路径,而我的回显 $PATH 有很多行。
还尝试从 Python sys.path.append('/opt/local/bin/dot')
附加 PATH
P.S。我正在使用 Webots 作为我的 IDE
错误消息说 graphviz 不在您的路径中。确保 $PATH
包含包含 dot
和其余 graphviz 工具的文件夹。
[编辑] 我不确定 Webots 从哪里获取路径;我的猜测是 Mac OS/X 剥离了您从桌面启动的进程的 PATH(或者桌面进程可能以非常基本的 PATH 启动)。
对于这种情况,我通常将 C 程序包装在设置环境(如 PATH)的可执行脚本中,然后调用 C 程序本身。当您从任何地方执行脚本时,代码将按预期运行。
我正在为 Python.
使用 graphviz 库当我从终端 运行 脚本时,图表被创建,但是当我从 C 启动脚本时使用 posix_spawn 的程序,我收到错误消息说
"ValueError: Program dot not found in path" (I have tried all options: '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 后,我得到 /usr/bin:/bin:/usr/sbin:/sbin我尝试从 Python 脚本和 C 程序打印我的路径,而我的回显 $PATH 有很多行。
还尝试从 Python sys.path.append('/opt/local/bin/dot')
P.S。我正在使用 Webots 作为我的 IDE
错误消息说 graphviz 不在您的路径中。确保 $PATH
包含包含 dot
和其余 graphviz 工具的文件夹。
[编辑] 我不确定 Webots 从哪里获取路径;我的猜测是 Mac OS/X 剥离了您从桌面启动的进程的 PATH(或者桌面进程可能以非常基本的 PATH 启动)。
对于这种情况,我通常将 C 程序包装在设置环境(如 PATH)的可执行脚本中,然后调用 C 程序本身。当您从任何地方执行脚本时,代码将按预期运行。