Wie kann man libsvm-2.91 für Python unter OS X 10.6.4 Snow Leopard mit SWIG 2.0 erstellen?

1837
mkelley33

Problem:

Ich habe die Arbeit an einer Django-Anwendung geerbt, bei der Python-Module zum Importieren von svmc verwendet werden. Wenn ich ./manage.py runserver eingebe, erhalte ich Folgendes:

Error: No module named svmc 

Lösung gesucht:

sh > python >>> import svmc >>> 

Weitere Kleinigkeiten:

Ich stellte also eine verwandte Frage, die beantwortet wurde, und führte mich hierher, da ich die in der genannten Lösung genannten Schritte nicht ausführen kann.

Auf meinem anderen Rechner (Linux, Ubuntu, Lucid Lynx) konnte ich mich mit dem Paketmanager apt-get recht gut installieren. Ich verwende Homebrew für meinen OS X-Paketmanager und würde lieber Darwinports, Macports oder Fink für die Installation von libsvm verwenden.

Meine Umgebung:

  • Mac OS X 10.6.4 Snow Leopard auf Intel-basierter x86_64-Architektur
  • GCC 4.2
  • SWIG 2.0
  • Python (64-Bit)
  • Django 1.2.1
  • Setuptools, Disutils und mehr!

Was ich versucht habe:

  • Ich habe libsvm-2.91 von http://www.csie.ntu.edu.tw/~cjlin/libsvm/ heruntergeladen.
  • Ich entpacke die Datei, cd in Python, lief make ab, legte libsvm.so.1 und svm.so auf PATH in .bash_profile ab und erhielt die gleiche Fehlermeldung: Kein Modul namens svmc.
  • Ich habe mir die .py-Dateien in meinem Projekt mit Bezug auf svmc angesehen und festgestellt, dass die einzigen Verweise auf svmc im Verzeichnis python_old der heruntergeladenen Dateien liegen (libsvm-2.91).
  • Ich habe SWIG 2.0 heruntergeladen und installiert
  • cd in libsvm-2.91 / python_old

Schließlich lief ich (in libsvm-2.91 / python_old): sudo make cleaner rm -f * ~ * .o * .so * .pyc * .pyo rm -f svmc_wrap.c sudo make all

Abgeschnittenes Bildschirm-Erbrochenes:

 "_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 

Über Hilfe, Ideen, Anregungen oder Kommentare würde ich mich sehr freuen! Danke, Michaux

0

1 Antwort auf die Frage

1
mkelley33

OK. Ich weiß also nicht, dass ich diese Frage wirklich beantworten kann. Wenn jemand, der darüber stolpert, die Antwort zu kennen scheint und meine Pseudo-Antwort ersetzen möchte, dann hinterlassen Sie bitte einen Kommentar, und ich werde meine Antwort in einen Kommentar ändern und durch eine bessere Antwort ersetzen.

Letztendlich habe ich nur versucht, zu der oben in der ursprünglichen Frage genannten Lösung zu gelangen. Ich habe tatsächlich eine Lösung gefunden, die gut funktioniert:

Herunterladen und Ausführen des Installationsprogramms von pyvision!

Öffnen Sie ein Terminal und fügen Sie die folgende Zeile ein:

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

Sobald Sie es haben, geben Sie Folgendes ein:

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

Jetzt können Sie ein Terminal öffnen und Folgendes eingeben:

python >>> import svmc >>> 

Voila! Keine Fehler und libsvm hotness (Version 2.84, die in den meisten Situationen gut funktionieren sollte - bitte korrigieren Sie mich!)

Vielen Dank und viel Glück an alle meine Macintosh OS X-Leute! Michaux