Come compilare libsvm-2.91 per Python su OS X 10.6.4 Snow Leopard usando SWIG 2.0?


0

Problema:

Ho ereditato il lavoro su un'app Django che utilizza moduli Python che importano svmc. Quando scrivo ./manage.py corsa server ottengo quanto segue:

Error: No module named svmc

Soluzione cercata:

sh > python
>>> import svmc
>>>

Più pezzi:

Quindi ho fatto una domanda correlata , a cui è stata data risposta, e mi ha portato qui, poiché non riesco a eseguire i passaggi necessari indicati nella soluzione fornita da detta risposta.

Sull'altra mia macchina (Linux, Ubuntu, Lucid Lynx), sono stato in grado di installare abbastanza bene con il gestore dei pacchetti apt-get. Sto usando Homebrew per il mio gestore di pacchetti OS X e preferirei evitare Darwinports, Macports o Fink per installare libsvm.

Il mio ambiente:

  • Mac OS X 10.6.4 Snow Leopard su architettura x86_64 basata su Intel
  • CCG 4.2
  • SWIG 2.0
  • Python (64 bit)
  • Django 1.2.1
  • setuptools, disutils e altro!

Cosa ho provato:

  • Ho scaricato libsvm-2.91 da http://www.csie.ntu.edu.tw/~cjlin/libsvm/
  • Ho decompresso il file, cd in Python, ho eseguito make, ho messo libsvm.so.1 e svm.so su PATH in .bash_profile e ho avuto lo stesso errore: nessun modulo chiamato svmc.
  • Ho guardato i file .py nel mio progetto facendo riferimento a svmc e ho notato che gli unici riferimenti a svmc si trovano nella directory python_old dei file scaricati (libsvm-2.91)
  • Ho scaricato SWIG 2.0 e l'ho installato
  • cd in libsvm-2.91 / python_old

Infine, ho eseguito (all'interno di libsvm-2.91 / python_old): sudo make cleaner rm -f * ~ * .o * .so * .pyc * .pyo rm -f svmc_wrap.c sudo make all

Vomito troncato dello schermo:

 "_PyLong_Type", referenced from:
      SWIG_AsVal_long(_object*, long*) in svmc_wrap.o
      SWIG_AsVal_double(_object*, double*)in svmc_wrap.o
      SWIG_AsVal_unsigned_SS_long(_object*, unsigned long*)in svmc_wrap.o
 "_PyObject_Init", referenced from:
     _PySwigObject_dealloc in svmc_wrap.o
     _SWIG_Python_NewPointerObj in svmc_wrap.o
     _initsvmc in svmc_wrap.o
...

"_PyTuple_SetItem", referenced from:
  _PySwigObject_format in svmc_wrap.o

ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [svmc.so] Error 1

Gradirei qualsiasi aiuto, idee, suggerimenti o commenti! Grazie Michaux

Risposte:


1

OK. Quindi non so di poter veramente rispondere a questa domanda. Se qualcuno che si imbatte in questo sembra conoscere la risposta e desidera sostituire la mia pseudo-risposta, quindi si prega di lasciare un commento, e cambierò la mia risposta in un commento e lo sostituirò con una risposta migliore.

Alla fine stavo solo cercando di arrivare alla soluzione sopra indicata nella domanda originale. Ho infatti raggiunto una soluzione che funziona perfettamente:

Scarica ed esegui il programma di installazione incluso in pyvision!

Apri un terminale e incolla la seguente riga:

svn co https://pyvision.svn.sourceforge.net/svnroot/pyvision/trunk pyvision

Una volta ottenuto digita:

cd pyvision/R/libsvm/python/
python setup.py install

E ora sarai in grado di aprire un terminale e digitare:

python
>>> import svmc
>>>

Ecco! Nessun errore, e libsvm hotness (Versione 2.84, che dovrebbe funzionare bene nella maggior parte delle situazioni - Sentiti libero di correggermi!)

Grazie e buona fortuna a tutte le persone del mio Macintosh OS X là fuori! Michaux

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.