2013-04-02 20 views
6

Zbudowałem libsvm na Mac OS X za pomocą Make.Jak skonfigurować LIBSVM dla Pythona

$ tar xzfv libsvm-3.17.tar.gz 
$ cd libsvm-3.17 
$ make 

Ten wbudowany różne libsvm binarne:

$ ls 
COPYRIGHT   heart_scale svm-predict.c svm-train.c tools 
FAQ.html   java  svm-scale svm.cpp  windows 
Makefile   matlab  svm-scale.c svm.def 
Makefile.win python  svm-toy  svm.h 
README  svm-predict svm-train svm.o 

ja również powiązane z tym w /usr/local:

$ ls -la /usr/local/ 
... 
svm -> /usr/local/libsvm-3.17/ 

i załączonych powiązań Pythona na mojej ścieżce:

import sys 
sys.path.append('/usr/local/svm/python') 

Ale Wiązania Pythona nie może znaleźć „LIBSVM” Biblioteka:

$ python test.py 
Traceback (most recent call last): 
    File "test.py", line 8, in <module> 
     import svmutil 
    File "/usr/local/svm/python/svmutil.py", line 5, in <module> 
     from svm import * 
    File "/usr/local/svm/python/svm.py", line 22, in <module> 
     raise Exception('LIBSVM library not found.') 
Exception: LIBSVM library not found. 

może ktoś mi powiedzieć jak to ustawić? W pythonie readme dla biblioteki libsvm jest tylko jeden opis:

Installation 
============ 

On Unix systems, type 

> make 

The interface needs only LIBSVM shared library, which is generated by 
the above command. We assume that the shared library is on the LIBSVM 
main directory or in the system path. 
Czego mi brakuje?

+1

Nota boczna: zamiast samodzielnie kompilować programy, możesz użyć menedżera pakietów, takiego jak bardzo dobry menedżer MacPorts: opiekunowie pakietów rozwiązali dla Ciebie problemy z kompilacją. :) – EOL

+0

Miałem ten sam problem w 64-bitowym środowisku Unix (64-bitowa instalacja Pythona). W moim przypadku, próbowanie 64-bitowego Liblinear rozwiązało problem. – geompalik

Odpowiedz

8

Zamiast przeżywa libsvm w celu uzyskania dostępu do jej Pythonie (I zainstalowany libsvm przez DarwinPorts i import svmutil nie), może chcesz zainstalować popularne scikit-learn pakiet, który zawiera zoptymalizowaną wersję libsvm with Python bindings.

Instalacja jest bardzo prosta z MacPorts: sudo port install py27-scikit-learn (dostosuj py27 do dowolnej wersji używanego Pythona).

+0

Zrobione, niesamowite. Dzięki EOL. –

+0

Trudno mi było zainstalować Macports. Superpacka Scipy działała natychmiast. http://fonnesbeck.github.com/ScipySuperpack/ –

+1

Jakie problemy wystąpiły w MacPorts? Zadaję to pytanie, ponieważ MacPorts to dobra inwestycja: zawiera 15k + pakietów, które (prawie zawsze) kompilują się automatycznie. Jeśli dobrze pamiętam, procedura instalacji wymaga długiego pobierania (XCode), który wymaga rejestracji w Apple, uruchomienia instalatora .pkg i ewentualnie skonfigurowania ścieżki powłoki (chyba że używasz bash, w takim przypadku jest to zrobione dla ciebie). Gdy to zrobisz, rzeczy działają zwykle całkiem sprawnie. – EOL

2

W przypadku, gdy potrzebne jest rozwiązanie niż DarwinPorts, zobacz tę stronę (zwłaszcza komentarz od Thanassis):

Installing libsvm-3.0 for Python on OSX 10.6

Pomimo tytule postu, rozwiązanie pracował dla mnie na maszynie CentOS z pytonem 2.7.

0

Powinieneś iść do/Python i zrobić, aby wygenerować plikowi .so.1

1

find_library w Pythonie jest tylko patrząc na pliki z rozszerzeniem .so. Aby to działało poprawnie trzeba stworzyć libsvm.so:

% ln -s libsvm.so.2 libsvm.so

następnie spróbuj to znów będzie działać prawidłowo.

2

Wygląda jak stary wątek. Mam nadzieję, że pomoże to komuś innemu w przyszłości.

Miałem ten sam problem. Rozwiązaniem jest

  1. Run make w libsvm-3,0 katalogu
  2. Run make w libsvm-3,0/katalogu Pythona

Jeśli tak tylko na libsvm-3,0 folder będzie musiał stawić czoła tej kwestii. Zrób to w obu folderach. Wtedy zadziała dobrze.

0

możesz również spróbować użyć homebrew do zainstalowania biblioteki libsvm takiej jak "brew install libsvm", następnie możesz otworzyć plik projektu i skopiować pliki "svmutil.py" i "svm.py" do floder projektu, a następnie możesz użyć polecenia 'from svmutil import *', a może będzie dobrze.

1

Nie musisz używać nauki scikit, aby korzystać z libSVM. Miałem ten sam problem podczas ładowania modułów libsvm przez pythona. Sklonowałem projekt z github i uruchomiłem go z wiersza poleceń z make, a po ustawieniu środowiska, dostałem ten sam błąd.

Naprawiłem problem instalując libSVM przez homebrew:

brew install libsvm

To nie zawierają specyficznych plików binarnych Python, więc nadal trzeba sklonować i uczynić z github i skonfigurować środowisko.

Powiązane problemy