19

我有一些点文件(有向图)需要在 Python 中读取并从节点中提取一些值来填充我的数据结构。我看到 Python 有两个 graphviz 包:graphvizpygraphviz。两者有什么大的区别吗?从文档的快速滚动中,他们几乎似乎在做同样的事情。我将在 Python 2.7.X 中使用它来完成上述任务。

4

1 回答 1

27

graphviz是一个轻量级库,它调用 graphviz 作为子进程来执行所有操作并产生输出。这个库非常适合作为生成 SVG 或 PNG 输出的快速简便的方法。

pygraphviz包含完整的 C 绑定,它使用 graphviz 作为库并公开所有 graphviz 的内部功能,如添加/删除节点/边。但它的部署复杂性更高,因为 pip 需要编译 C 绑定并查找所有库。

在您的情况下,由于您需要读取和操作点文件,看起来您必须使用pygraphviz。其他有趣的替代方法是http://pypi.python.org/pypi/pydot,它是一个纯 Python 点解析器。

免责声明:我有偏见,因为我为 pygraphviz 做出了贡献(一点点)。

于 2016-06-18T05:35:06.913 回答