1

我正在尝试igraph.Graph在 Ubuntu 16.04.1 LT 上使用 python 3.5.0 从 python-igraph(0.7.1.post6) 包导入,但出现错误:

from igraph._igraph import *

ImportError: /home/ubuntu/djangoproject/env/lib/python3.5/site-packages/igraph/_igraph.cpython-35m-x86_64-linux-gnu.so: undefined symbol: xmlStrEqual

我的理解是该包需要xmlStrEqual来自 libxml2,但没有进行绑定。Libxml2 安装在我的系统上。运行$apt-get install libxml2给出:

libxml2 is already the newest version (2.9.3+dfsg1-1ubuntu0.1).

我正在使用具有以下设置的virtualenv,如下所示:

virtualenv -p python3 env
source env/bin/activate
pip install python-igraph==0.7.1.post6

运行$ ldd /home/ubuntu/djangoproject/env/lib/python3.5/site-packages/igraph/_igraph*.so给出:

linux-vdso.so.1 =>  (0x00007ffdd33b8000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7ce24c5000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f7ce2143000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f7ce1f2c000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7ce1d0f000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7ce1946000)
/lib64/ld-linux-x86-64.so.2 (0x000055e56299f000)

我希望有一个绑定,例如libxml2.so.2 => /usr/lib/x86_64-linux-gnu/libxml2.so.2

有谁知道为什么这没有发生或解决这个问题?

4

1 回答 1

0

问题是系统上 /usr/local/lib 中安装了另一个 libxml2 副本,这在某种程度上不适合动态链接。删除 libxml2 的额外副本解决了该问题。

是对该问题的更全面说明。

于 2017-01-26T08:20:24.473 回答