Pygraphviz,导入错误:未定义符号:Agundirected

6
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无法看到pygraphviz

错误是由于graphviz库无法加载动态库引起的 - 检查库是否实际存在,并确保在graphviz目录不存在时运行ldconfig以更新动态库路径。 - MatsLindh
请问您能否帮我检查一下这个库是否存在?另外,如何运行idconfig呢? - midhun j
@midhunj 使用sudo ldconfig命令。对我来说,它仍然无效。 - SparkAndShine
我已经尝试过ldconfig了,但它仍然无法正常工作。 - midhun j
当我尝试导入graphviz时,它能够正常工作。那么有谁能解释一下为什么无法导入pygraphviz呢? - midhun j
2个回答

12

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

 pip uninstall pygraphviz

然后使用以下命令检查您的路径:

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

那些命令应该指向库的路径,例如:
-I/usr/include/graphviz  

然后,使用上述输出中的路径,在您的虚拟环境中运行以下命令:

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"? - MERose
不要在意 pkg-config --libs-only-L libcgraph 的输出。在我的情况下(Ubuntu 16.04),该命令返回一个空行,这正是pip无法检测到graphviz库正确路径的原因。 在我的情况下,我只需使用以下命令进行安装:pip install pygraphviz --install-option="--include-path=/usr/include/graphviz" --install-option="--library-path=/usr/lib/graphviz/"然后它就可以工作了。 - Augusto Destrero

4

在Ubuntu 14.04上,@Martin0x777的回答对我没有用。所以我按照github指南安装了pygraphviz,错误消失了:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接