pygraphviz,ImportError:未定义符号:Agundirected

Posted

技术标签:

【中文标题】pygraphviz,ImportError:未定义符号:Agundirected【英文标题】:pygraphviz, ImportError: undefined symbol: Agundirected 【发布时间】:2015-12-29 09:13:06 【问题描述】:
import pygraphviz

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/pygraphviz/__init__.py", line 58, in <module>
    from .agraph import AGraph, Node, Edge, Attribute, ItemAttribute, DotError
File "/usr/local/lib/python2.7/dist-packages/pygraphviz/agraph.py", line 26, in <module>
    from . import graphviz as gv
File "/usr/local/lib/python2.7/dist-packages/pygraphviz/graphviz.py", line 28, in <module>
    _graphviz = swig_import_helper()
File "/usr/local/lib/python2.7/dist-packages/pygraphviz/graphviz.py", line 24, in swig_import_helper
    _mod = imp.load_module('_graphviz', fp, pathname, description)
ImportError: /usr/local/lib/python2.7/dist-packages/pygraphviz/_graphviz.so: undefined symbol: Agundirected

我已经试过了

pip install pygraphviz --install-option="--include-path=/usr/include/graphviz" --install-option="--library-path=/usr/lib/graphviz/"

我也试过这个答案,但还是不行

Python does not see pygraphviz

【问题讨论】:

该错误是由于graphviz库未能加载动态库导致-检查库是否确实存在,如果graphviz目录不存在,请务必运行ldconfig更新动态库的路径. 你能帮我检查一下这个库是否真的存在吗?还有如何运行 idconfig @midhunj 使用sudo ldconfig。它仍然对我不起作用。 我试过 ldconfig 还是不行。 当我尝试导入graphviz时,它工作正常。那么任何人都可以解释为什么pygraphviz没有被导入? 【参考方案1】:

首先,卸载你当前的模块:

 pip uninstall pygraphviz

然后检查您的路径:

 pkg-config --libs-only-L libcgraph
 pkg-config --cflags-only-I libcgraph

该命令应该告诉库的路径,例如:

-I/usr/include/graphviz  

然后,使用上述输出中的路径,[在您的 virtualenv 中] 运行命令:

pip install pygraphviz --install-option="--include-path=/usr/include/graphviz" --install-option="--library-path=/usr/lib/graphviz/"

来源:https://github.com/pygraphviz/pygraphviz/issues/71

【讨论】:

install-option 两次?为什么会这样? 别管pkg-config --libs-only-L libcgraph的输出。在我的情况下(Ubuntu 16.04),该命令返回一个 emtpy 行,这正是 pip 没有检测到 graphviz 库的正确路径的原因。在我的情况下,我刚刚安装使用:pip install pygraphviz --install-option="--include-path=/usr/include/graphviz" --install-option="--library-path=/usr/lib/graphviz/" 然后它工作。【参考方案2】:

在 Ubuntu 14.04 上 @Martin0x777 的 answer 对我不起作用。于是我从github instructions 安装了pygraphviz,错误消失了:

git clone https://github.com/pygraphviz/pygraphviz.git
cd pygraphviz
python setup.py install

【讨论】:

以上是关于pygraphviz,ImportError:未定义符号:Agundirected的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 上安装 pygraphviz

使用 PyGraphviz 绘制有关图形\节点的更多信息

Pygraphviz 在绘制 170 个图后崩溃

在 anaconda 错误上安装 pygraphviz

Python 看不到 pygraphviz

Graphviz 与 PyGraphViz