Ubuntu graphviz的sfdp不起作用

我正在尝试制作一些Networkx Graphviz图表。

运行后: pos = nx.graphviz_layout(G, prog = 'sfdp') 。 发生错误,说:

 Error: remove_overlap: Graphviz not built with triangulation library 

经过Google的一些调查,我发现GTS是个问题。 错误报告说:

Graphviz软件包是build立 – 没有gts。 这对于s​​fdp来说是个坏消息,它抱怨“Error:remove_overlap:Graphviz not built with triangulation library”,并且在编译时无法产生漂亮的输出–with-gts

看着(关于bug报告)的评论,有人说Graphviz的上游来源保持在链接,但我无法find新的版本下载。

在软件包列表中,我有最新的(trusty为2.36)。

任何人与sfdp有问题?

任何帮助将不胜感激!

对于ubuntu的用户来说,这就是我在16.04上得到了grapvhiz的工作,从源码编译graphviz-2.40.1:

在第一步中,需要安装GTS ,因为graphviz查找gts.pc文件 。

running apt-file search gts.pc学习我我必须安装'libgts-dev':

 sudo apt install libgts-dev 

接下来让pkg-config知道这些文件:

 pkg-config --libs gts pkg-config --cflags gts 

运行配置链接到gts库中:

 ./configure --with-gts --prefix ~ make make install 

SFDP不会再抛出错误'错误:remove_overlap:Graphviz未建立三角测量库'

从这个答案修改pkg配置的命令行代码。

可能会为Ubuntu 14.04,YMMV

直接从https://packages.debian.org/search?keywords=graphviz下载以下graphviz软件包

  • graphviz_2.38.0-13_amd64.deb
  • libcgraph6_2.38.0-13_amd64.deb
  • libgvc6_2.38.0-13_amd64.deb
  • libgvpr2_2.38.0-13_amd64.deb
  • libltdl7_2.4.6-0.1_amd64.deb
  • 蟒蛇,pygraphviz_1.3.1-1_amd64.deb

我使用拉伸(测试)组的版本2.38.0-13。 如果存在,您将需要删除32位libltdl7:

 sudo apt-get remove libltdl7:i386 

直接安装包

 sudo dpkg -i graphviz_2.38.0-13_amd64.deb sudo dpkg -i libcgraph6_2.38.0-13_amd64.deb libgvc6_2.38.0-13_amd64.deb libgvpr2_2.38.0-13_amd64.deb libltdl7_2.4.6-0.1_amd64.deb 

您可以预期依赖性错误。 我清除他们:

 sudo apt-get install -f 

然后重新安装

 sudo dpkg -i graphviz_2.38.0-13_amd64.deb sudo dpkg -i python-pygraphviz_1.3.1-1_amd64.deb 

错误不再出现,虽然我会很难推动说图表是更好的。

我知道这个问题是针对Ubuntu的,但是如果有人在使用自制软件macOS上遇到同样的问题,那么下面的代码对我有用

 brew reinstall graphviz --with-gts