我正在尝试制作一些 Networkx Graphviz图.
跑完后:pos = nx.graphviz_layout(G, prog = 'sfdp')
.发生错误,说:
Error: remove_overlap: Graphviz not built with triangulation library
经过一些谷歌研究后,我发现GTS就是问题所在.错误报告指出:
Graphviz包是构建的--with-gts.这对于sfdp来说是坏消息,它抱怨"错误:remove_overlap:Graphviz不是用三角测量库构建的"并且无法生成它在编译时创建的漂亮输出--with-gts
查看评论(关于错误报告),有人说Graphviz的上游源保持链接,但我找不到要下载的新版本.
在包装清单上,我有最新的一个(可靠的 2.36 ).
其他人有问题sfdp
吗?
任何帮助将不胜感激!
我知道这个问题是针对Ubuntu的,但是如果有人在使用自制软件的macOS上遇到同样的问题,以下内容对我有用:
brew reinstall graphviz --with-gts
对于ubuntu用户,这就是我让grapvhiz在16.04上工作的方法,从源代码编译graphviz-2.40.1:
在第一步中,需要安装GTS,因为graphviz会查找gts.pc文件.
运行
apt-file search gts.pc
告诉我我必须安装'libgts-dev':
sudo apt install libgts-dev
接下来让pkg-config知道文件:
pkg-config --libs gts pkg-config --cflags gts
运行configure以在gts库中链接:
./configure --with-gts --prefix ~ make make install
SFDP不再抛出错误'错误:remove_overlap:Graphviz不是用三角测量库构建的'
我从这个答案中修改了pkg配置的命令行代码.