xmlStrEqual при импорте igraph.Graph - ссылка на libxml2

Я пытаюсь импортировать igraph.Graph из пакета python-igraph(0.7.1.post6), использующего python 3.5.0 в Ubuntu 16.04.1 LT, но получаю ошибку:

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 также.

Кто-нибудь знает, почему этого не происходит или решение этой проблемы?

1 ответ

Проблема заключалась в том, что в системе была установлена ​​другая копия libxml2 в / usr / local / lib, и это было как-то непригодно для динамического линкования. Удаление лишней копии libxml2 решило проблему.

Вот более полное описание проблемы.

Другие вопросы по тегам