python 异常函数调用栈_python - Graphviz引发错误调用view()函数 - 堆栈内存溢出...

我试图重建fsm.py的代码以显示生产线的流程序列。 我在jupyter笔记本中执行了此操作,还运行了命令

conda install -c anaconda graphviz

此安装已成功完成,没有错误。

来自源的给定代码是:

from graphviz import Digraph

f = Digraph('finite_state_machine', filename='fsm.gv')

f.attr(rankdir='LR', size='8,5')

f.attr('node', shape='doublecircle')

f.node('LR_0')

f.node('LR_3')

f.node('LR_4')

f.node('LR_8')

f.attr('node', shape='circle')

f.edge('LR_0', 'LR_2', label='SS(B)')

f.edge('LR_0', 'LR_1', label='SS(S)')

f.edge('LR_1', 'LR_3', label='S($end)')

f.edge('LR_2', 'LR_6', label='SS(b)')

f.edge('LR_2', 'LR_5', label='SS(a)')

f.edge('LR_2', 'LR_4', label='S(A)')

f.edge('LR_5', 'LR_7', label='S(b)')

f.edge('LR_5', 'LR_5', label='S(a)')

f.edge('LR_6', 'LR_6', label='S(b)')

f.edge('LR_6', 'LR_5', label='S(a)')

f.edge('LR_7', 'LR_8', label='S(b)')

f.edge('LR_7', 'LR_5', label='S(a)')

f.edge('LR_8', 'LR_6', label='S(b)')

f.edge('LR_8', 'LR_5', label='S(a)')

f.view()

从源头应该给出以下输出:

但是,当我运行代码时,出现了很多错误:

---------------------------------------------------------------------------

FileNotFoundError Traceback (most recent call last)

~\Anaconda3\lib\site-packages\graphviz\backend.py in run(cmd, input, capture_output, check, quiet, **kwargs)

146 try:

--> 147 proc = subprocess.Popen(cmd, startupinfo=get_startupinfo(), **kwargs)

148 except OSError as e:

~\Anaconda3\lib\subprocess.py in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, encoding, errors)

708 errread, errwrite,

--> 709 restore_signals, start_new_session)

710 except:

~\Anaconda3\lib\subprocess.py in _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, unused_restore_signals, unused_start_new_session)

996 os.fspath(cwd) if cwd is not None else None,

--> 997 startupinfo)

998 finally:

FileNotFoundError: [WinError 2] Das System kann die angegebene Datei nicht finden

During handling of the above exception, another exception occurred:

ExecutableNotFound Traceback (most recent call last)

in ()

10 g1.edge('A', 'B')

11

---> 12 g1.view()

~\Anaconda3\lib\site-packages\graphviz\files.py in view(self, filename, directory, cleanup)

213 """

214 return self.render(filename=filename, directory=directory, view=True,

--> 215 cleanup=cleanup)

216

217 def _view(self, filepath, format):

~\Anaconda3\lib\site-packages\graphviz\files.py in render(self, filename, directory, view, cleanup, format, renderer, formatter)

186 format = self._format

187

--> 188 rendered = backend.render(self._engine, format, filepath, renderer, formatter)

189

190 if cleanup:

~\Anaconda3\lib\site-packages\graphviz\backend.py in render(engine, format, filepath, renderer, formatter, quiet)

181 """

182 cmd, rendered = command(engine, format, filepath, renderer, formatter)

--> 183 run(cmd, capture_output=True, check=True, quiet=quiet)

184 return rendered

185

~\Anaconda3\lib\site-packages\graphviz\backend.py in run(cmd, input, capture_output, check, quiet, **kwargs)

148 except OSError as e:

149 if e.errno == errno.ENOENT:

--> 150 raise ExecutableNotFound(cmd)

151 else: # pragma: no cover

152 raise

ExecutableNotFound: failed to execute ['dot', '-Tpng', '-O', 'Graph.gv'], make sure the Graphviz executables are on your systems' PATH

我没有正确安装graphviz吗? 我从错误中了解到这一点。 如果是这样,什么是正确的安装方式?

甚至有可能使用networkx创建这种图形的方法吗? 我也尝试过,但是未能创建节点的顺序显示。

非常感谢您的帮助,自我们以来我就一直坐在这里。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值