【问题标题】:xmlStrEqual when import igraph.Graph - linking libxml2导入 igraph.Graph 时的 xmlStrEqual - 链接 libxml2
【发布时间】:2017-01-25 09:02:23
【问题描述】:

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

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

我的理解是该包需要来自 libxml2 的xmlStrEqual,但没有进行绑定。 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 这样的绑定。

有谁知道为什么没有发生这种情况或解决此问题的方法?

【问题讨论】:

    标签: python python-3.x virtualenv igraph python-bindings


    【解决方案1】:

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

    Here 更全面地说明了这个问题。

    【讨论】:

    • 你好,我也有同样的问题,你能解释一下如何找到和删除这个“不可链接”的图书馆吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 2014-02-14
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    相关资源
    最近更新 更多