2011-02-24 6 views
0

CentOS 5.5에서 대체 파이썬 빌드 (기본값 2.4 대신 python-2.7.1) 용 libsvm-3.0을 설치하려고합니다. 이 python은 /opt/python2.7에 설치됩니다. 나는 소스 파일을 다운로드하고 MAKE를 주 (main) 디렉토리와 파이썬 서브 디렉토리에 실행했다. 그런 다음 모든 것을 /opt/python2.7/lib/python2.7/site-packages/libsvm에 복사했습니다.Python-2.7.1 용 CentOS 5.5에서 libsvm-3.0 빌드 문제

이 작업을 Macintosh 10.6.6에서 수행했을 때, 지시. 그들은 내 블로그 here에 설명되어 있습니다. 주요 단계는

import os.path 
_PATH = os.path.join(*os.path.split(__file__)[:-1]) 

을 svm.py하려면 다음을 추가하고

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')) 

를, 이러한 구성의 어느 쪽도 노력하고 있습니다 이 리눅스 버전. 나는 확실히 리눅스 사람이 아니므로, 무엇이 잘못 될 수 있는지 전혀 모른다.

인터프리터에서이 문제를 알아 내려고 노력하면서 cytpes.util.find_library ('svm') 또는 ctypes.util.find_library ("libsvm.so.2")가 빈 값을 반환한다는 사실을 확인했습니다. .so가 어디 있는지 모릅니다.

libsvm = CDLL (os.path.abspath ("libsvm.so.2"))을 설정하여 수동으로 인터프리터에서 위치를 강제 적용 할 수있었습니다. 그럼 그 세션 동안에 만 svm을 가져올 수 있습니다.

도움을 주시면 감사하겠습니다.

마크

답변

0

그래, 문제가 해결되었습니다. 바보 야. libsvm dir에 __init__.py 을 추가하는 대신 init.py를 추가했습니다. 일단 내가 그것을 바꿨다면, 그것은 효과적이다. 여전히 __init__.py을 추가해야 할 필요가 libsvm-3.0 설치 정보 IMHO에 포함되어야합니다.