【问题标题】:Ubuntu graphviz 'sfdp' not workingUbuntu graphviz 'sfdp' 不工作
【发布时间】:2016-03-17 15:40:22
【问题描述】:

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

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

Error: remove_overlap: Graphviz not built with triangulation library

经过一些 Google 研​​究后,我发现 GTS 是问题所在。 Bug report 声明:

Graphviz 包是由 --without-gts 构建的。这对 sfdp 来说是个坏消息,它抱怨“错误:remove_overlap:Graphviz 未使用三角测量库构建”并且无法生成编译时创建的漂亮输出 --with-gts

查看 cmets(关于 bug 报告),有人说 Graphviz 的上游源代码保存在 link,但我找不到要下载的新版本。

在包裹 list 我有最新的(2.36 for trusty)。

还有其他人对sfdp 有疑问吗?

任何帮助将不胜感激!

【问题讨论】:

  • 同样的问题,还没有解决办法。
  • @PaulSmith 我很久以前就放弃了:D

标签: python-3.x ubuntu package updates graphviz


【解决方案1】:

我可能让它适用于 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
  • python-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

虽然我很难说图表更好,但该错误不再出现。

【讨论】:

    【解决方案2】:

    我知道这个问题是针对 Ubuntu 的,但是如果有人在 macOS 上使用 homebrew 遇到同样的问题,那么以下对我有用:

    brew reinstall graphviz --with-gts
    

    【讨论】:

    • 目前gts是graphviz的依赖之一,简单重装即可解决问题。
    【解决方案3】:

    对于 ubuntu 用户,这就是我让 grapvhiz 在 16.04 上工作的方式,从源代码编译 graphviz-2.40.1:

    第一步,需要安装GTS,因为graphviz 会寻找gts.pc file。

    跑步

    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 未使用三角测量库构建”

    我从this 答案修改的 pkg 配置的命令行代码。

    【讨论】:

    • 从here 下载了graphviz-2.40.1.tar.gz 并运行了您的程序,它可以正常工作 - 有点。我可以使用一些命令(dot、fdp),但不能使用其他命令(sfdp、neato)。知道这里发生了什么吗? (使用 Ubuntu 16.04.2)`
    • /usr/bin/sfdp: No such file or directory 是问题所在,顺便说一句。而其他命令就像正常工作一样。 This post 似乎同意上述程序答案(1. 安装libgts-dev,2. 将--with-gts 添加到配置中)。有没有人和我一样的问题?
    • 好的,我让它工作了(至少现在还没有问题)——对于其他有类似问题的人,我在这里写了一些信息:github.com/ellson/graphviz/issues/1237 虽然这可能只是我做错了。谢谢,山姆!
    • 嗨@JoeRocc,对不起,我没有看到你的评论。很高兴你让它工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 2015-06-20
    • 2012-04-30
    • 2015-12-28
    • 1970-01-01
    • 2017-01-13
    相关资源
    最近更新 更多