是否可以直接从其源代码使用 graphviz,而不是安装它?

Is it possible to use graphviz directly from its source code, instead of installing it?

我在 python 中构建了一个简单的模块,它使用 graphviz 生成一些图形,通过直接调用点作为 shell 命令。我曾计划将此模块放在我的网站上。但是,为了使用 graphviz(和 dot),它必须安装在调用脚本的计算机上,不幸的是,我托管我的网站的公司不会在他们的服务器上安装它。

我正在尝试考虑替代方案,这样我仍然可以将模块放到网上。我读到有一个 graphviz API 可以调用它来生成图表,但是提供有关它的信息的网站已关闭。

然后我想到了一个想法——既然 graphviz 是开源的并且源代码可以在线获取,我是否可以以某种方式将所有源代码复制到我的 homedir 中,然后做一些事情让 graphviz 工作而无需正在经历正式的安装过程?我不确定在安装过程中实际上发生了什么——这让我想知道这些安装过程是否是我自己可以手动完成的? (我不知道是否归结为将文件复制到正确的位置,设置环境变量等。同样,我更改代码,调用绝对路径 'dot.exe',或类似的东西。)有谁知道我可以从哪里了解到这件事?或者,如果这是不可能的 - 让我知道?

感谢您提供的任何帮助或建议。 (P.S。我知道 google 的图表 API 但它不适合我正在做的事情。)

万一以后有人看到这个,似乎旧版本的 Google Charts 已经弃用了 API 用于创建 graphviz 图表,它仍然有效,而且它似乎创建了相同的如果您在本地安装了 graphviz,则可以创建图表。它适用于我的目的,所以也许它会对其他人有所帮助。

要使用它,只需创建以下 URL,在其中提供要生成的图形的 graphviz 规范,作为 chl 参数:

https://chart.googleapis.com/chart?cht=gv&chl=<your graph string here>

示例:

这是 graphviz 中简单图形的规范:

digraph{A->B->C->A}

我可以使用 api 创建此图,方法是在 URL 中指定确切的字符串作为 chl 参数,如下所示。单击 link - 并查看图表!

https://chart.googleapis.com/chart?cht=gv&chl=digraph{A->B->C->A}

这里有一个link可以帮忙描述一下!

https://developers.google.com/chart/image/docs/gallery/graphviz

您不能直接从源代码使用 Graphviz,因为它是用 C 语言编写的,需要编译。

但是,您可以使用 d3-graphviz, which uses Viz.js,它是 Graphviz 移植到 Javascript 的。以下是如何从固定字符串生成示例图。

<!DOCTYPE html>
<meta charset="utf-8">
<body>
<script src="//d3js.org/d3.v4.min.js"></script>
<script src="https://unpkg.com/viz.js@1.8.0/viz.js"></script>
<script src="https://unpkg.com/d3-graphviz@0.1.2/build/d3-graphviz.min.js"></script>
<div id="graph" style="text-align: center;"></div>
<script>

d3.select("#graph").graphviz()
    .renderDot('digraph{A -> B -> C-> A}');

</script>

如果你把你的 python 模块放到网上并让它输出 DOT 源,你应该可以写一些 Javascript 代码来加载它并使用 d3-graphviz 来渲染图形。