我从他们自己的网站复制了一个示例,但我不知道如何让它工作。
这是我的代码:
from pycallgraph import PyCallGraph
from pycallgraph.output import GraphvizOutput
class Banana:
def eat(self):
pass
class Person:
def __init__(self):
self.no_bananas()
def no_bananas(self):
self.bananas = []
def add_banana(self, banana):
self.bananas.append(banana)
def eat_bananas(self):
[banana.eat() for banana in self.bananas]
self.no_bananas()
def main():
graphviz = GraphvizOutput()
graphviz.output_file = 'basic.png'
with PyCallGraph(output=graphviz):
person = Person()
for a in xrange(10):
person.add_banana(Banana())
person.eat_bananas()
if __name__ == '__main__':
main()
这是我在尝试编译它时收到的错误:
File "test_pycallgraph.py", line 43, in <module>
main()
File "test_pycallgraph.py", line 35, in main
with PyCallGraph(output=graphviz):
'The command "{}" is required to be in your path.'.format(cmd))
pycallgraph.exceptions.PyCallGraphException: The command "dot" is required to be in your path.
最佳答案
您想要使用的库似乎对 dot
命令进行了内部调用。但由于 dot
不在您的 PATH 中,因此库无法找到 dot
可执行文件并引发异常。
您很可能需要安装dot
,这是一个用于绘制有向图的命令行工具。确保您已安装它。
如果您已经安装了它,请确保将其位置添加到您的 PATH 中。请参阅this Stack Overflow answer有关修改 PATH 的更多信息。
关于Python PyCallGraph异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49273634/