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的主要内容,如果未能解决你的问题,请参考以下文章