Я не могу импортировать igraph на Mac 10.6

Я установил igraph для python на свой Mac, но не могу его импортировать. Сначала я установил основную библиотеку C, затем приступил к установке Python, выполнив следующие действия:

python setup.py build
python setup.py install

Казалось, все работает нормально, но я не могу импортировать igraph из оболочки Python. Просто чтобы прояснить, я не в папке с исходным кодом igraph. И я получил эту ошибку:

import igraph
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "build/bdist.macosx-10.3-fat/egg/igraph/__init__.py", line 30, in <module>

  File "build/bdist.macosx-10.3-fat/egg/igraph/core.py", line 7, in <module>
  File "build/bdist.macosx-10.3-fat/egg/igraph/core.py", line 6, in __bootstrap__
ImportError: dlopen(/Users/*****/.python-eggs/python_igraph-0.5.4-py2.7-macosx-10.3-fat.egg-tmp/igraph/core.so, 2): Symbol not found: _igraph_vector_destroy
  Referenced from: /Users/*****/.python-eggs/python_igraph-0.5.4-py2.7-macosx-10.3-fat.egg-tmp/igraph/core.so
  Expected in: dynamic lookup

Я заменил имя своей папки на *, так что не принимайте это во внимание.

Я использую python 2.7 поверх ОС 10.6.7. Таким образом, нет предварительно скомпилированной версии igraph (только 2.5 и 2.6). Эта ошибка как-то связана с версией Python, которую я использую? Если возможно, как я могу решить это?


person Paulo    schedule 07.07.2011    source источник
comment
Где вы установили ядро ​​​​C igraph? Находится ли он в каком-то стандартном месте, где компоновщик может его найти? Есть ли на вашем компьютере какие-либо другие установки основной библиотеки (более старые версии), которые могут запутать компоновщика?   -  person Tamás    schedule 07.07.2011
comment
На самом деле у меня нет предыдущей установки основной библиотеки. Я думаю, что ядро ​​​​C было установлено в стандартном месте, потому что я не указал его. Я только что сделал: ./configure, затем make, а затем make install (). Куда мне его установить? Если это изменить место установки, как я могу указать путь к ядру C для установки и как удалить тот, который я установил в неправильном каталоге? (Я новичок в Mac, извините)   -  person Paulo    schedule 07.07.2011
comment
Обычный танец ./configure && make && make install должен установить igraph в /usr/local/lib/libigraph.dylib, и это должно быть нормально. Вы уверены, что номер версии ядра igraph, который вы загрузили и скомпилировали, совпадает с номером версии интерфейса Python?   -  person Tamás    schedule 07.07.2011
comment
Я скачал и установил последнюю доступную на sourceforge версию 0.5.4. Номер версии моего интерфейса Python — 2.7.   -  person Paulo    schedule 08.07.2011


Ответы (1)


Я думаю, проблема в том, что igraph установлен в /usr/local/lib/libigraph.dylib, но компоновщик не может его найти, когда Python пытается загрузить ядро ​​​​C модуля igraph, потому что /usr/local/lib не находится в пути к библиотеке по умолчанию в Mac OS X. (По крайней мере, я так думаю ).

Во-первых, проверьте, действительно ли libigraph.dylib находится в /usr/local/lib — оно должно быть там. После этого попробуйте следующее:

DYLD_LIBRARY_PATH=/usr/local/lib python -m igraph.test.__init__

Это должно указать компоновщику просмотреть /usr/local/lib, а также места по умолчанию, а затем запустить Python со всем набором тестов igraph.

person Tamás    schedule 08.07.2011
comment
Отлично. Если вы хотите сохранить эти изменения, отредактируйте файл .profile в своем домашнем каталоге следующим образом: export DYLD_LIBRARY_PATH=/usr/local/lib. - person Tamás; 09.07.2011