【问题标题】:pygraphviz, ImportError: undefined symbol: Agundirectedpygraphviz,ImportError:未定义符号: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没有被导入?

标签: python ubuntu import 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

【讨论】:

    猜你喜欢
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 2022-05-27
    • 2016-02-11
    • 2019-11-20
    • 2015-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多