VlS*_*VlS 9 ubuntu updates package graphviz python-3.x
我正在尝试制作一些 Networkx Graphviz图.
跑完后:pos = nx.graphviz_layout(G, prog = 'sfdp').发生错误,说:
Error: remove_overlap: Graphviz not built with triangulation library
Run Code Online (Sandbox Code Playgroud)
经过一些谷歌研究后,我发现GTS就是问题所在.错误报告指出:
Graphviz包是构建的--with-gts.这对于sfdp来说是坏消息,它抱怨"错误:remove_overlap:Graphviz不是用三角测量库构建的"并且无法生成它在编译时创建的漂亮输出--with-gts
查看评论(关于错误报告),有人说Graphviz的上游源保持链接,但我找不到要下载的新版本.
在包装清单上,我有最新的一个(可靠的 2.36 ).
其他人有问题sfdp吗?
任何帮助将不胜感激!
我知道这个问题是针对Ubuntu的,但是如果有人在使用自制软件的macOS上遇到同样的问题,以下内容对我有用:
brew reinstall graphviz --with-gts
Run Code Online (Sandbox Code Playgroud)
小智 6
对于ubuntu用户,这就是我让grapvhiz在16.04上工作的方法,从源代码编译graphviz-2.40.1:
在第一步中,需要安装GTS,因为graphviz会查找gts.pc文件.
运行
apt-file search gts.pc
告诉我我必须安装'libgts-dev':
sudo apt install libgts-dev
Run Code Online (Sandbox Code Playgroud)
接下来让pkg-config知道文件:
pkg-config --libs gts
pkg-config --cflags gts
Run Code Online (Sandbox Code Playgroud)
运行configure以在gts库中链接:
./configure --with-gts --prefix ~
make
make install
Run Code Online (Sandbox Code Playgroud)
SFDP不再抛出错误'错误:remove_overlap:Graphviz不是用三角测量库构建的'
我从这个答案中修改了pkg配置的命令行代码.
我可能让它适用于 Ubuntu 14.04,YMMV
直接从https://packages.debian.org/search?keywords=graphviz下载以下 graphviz 包
我使用了拉伸(测试)组的版本 2.38.0-13。您需要删除 32 位 libltdl7(如果存在):
sudo apt-get remove libltdl7:i386
Run Code Online (Sandbox Code Playgroud)
直接使用安装包
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
Run Code Online (Sandbox Code Playgroud)
您可能会遇到依赖错误。我用以下方法清除了它们:
sudo apt-get install -f
Run Code Online (Sandbox Code Playgroud)
然后重新安装
sudo dpkg -i graphviz_2.38.0-13_amd64.deb
sudo dpkg -i python-pygraphviz_1.3.1-1_amd64.deb
Run Code Online (Sandbox Code Playgroud)
尽管我很难说图表有任何改善,但错误不再出现。