嘗試在CentOs 5.5上安裝libsvm-3.0替代python構建(python-2.7.1而不是默認2.4)。這個python安裝在/opt/python2.7。我下載了源文件並在主目錄和python subdir中運行了MAKE。然後我將所有內容複製到/opt/python2.7/lib/python2.7/site-packages/libsvm在CentOs 5.5 for Python-2.7.1上構建libsvm-3.0問題
當我在Macintosh 10.6.6上完成此操作時,我必須執行一些額外的步驟說明。他們在我的博客here上有描述。關鍵的步驟加入以下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在哪裏。
我能夠通過設置libsvm = CDLL(os.path.abspath(「libsvm.so.2」))手動強制解釋器中的位置。然後我只能在該會話期間導入svm。
任何幫助,非常感謝。
馬克