пытается установить libsvm-3.0 для альтернативной сборки python (python-2.7.1 вместо 2.4 по умолчанию) в CentOs 5.5. Этот питон установлен в /opt/python2.7. Я скачал исходные файлы и запустил MAKE в основном каталоге и в подкаталоге python. Затем я скопировал все в /opt/python2.7/lib/python2.7/site-packages/libsvm
Когда я сделал это на Macintosh 10.6.6, мне пришлось сделать пару дополнительных шагов, которых не было в инструкции. Они описаны в моем блоге здесь . Ключевым шагом было добавление следующего к svm.py
import os.path
_PATH = os.path.join( *os.path.split(__file__)[:-1] )
и изменение этого первого утверждения
if find_library('svm'):
libsvm = CDLL(find_library('svm'))
elif find_library('libsvm'):
libsvm = CDLL(find_library('libsvm'))
else:
if sys.platform == 'win32':
libsvm = CDLL('../windows/libsvm.dll')
else:
libsvm = CDLL('../libsvm.so.2')
чтобы выглядеть так:
if find_library('svm'):
libsvm = CDLL(find_library('svm'))
elif find_library('libsvm'):
libsvm = CDLL(find_library('libsvm'))
else:
if sys.platform == 'win32':
libsvm = CDLL(os.path.join(_PATH,'windows','libsvm.dll'))
else:
libsvm = CDLL(os.path.join(_PATH,'libsvm.so.2'))
Однако ни одна из этих конфигураций не работает в этой версии Linux. Я определенно не человек Linux, поэтому я понятия не имею, что может быть не так.
Работая в интерпретаторе, чтобы попытаться выяснить это, я заметил, что cytpes.util.find_library ('svm') или ctypes.util.find_library ("libsvm.so.2") возвращают пустые значения, поэтому он определенно делает не знаю, где находится .so 1016 *
Мне удалось вручную принудительно определить местоположение в интерпретаторе, установив libsvm = CDLL (os.path.abspath ("libsvm.so.2")). Тогда я мог импортировать SVM только во время этой сессии.
Любая помощь очень ценится.
Mark