/ / Libsvm-Python-Bindungen: mach-o, aber falsche Architektur - Python, macos, svm, libsvm, mach-o

Libsvm Python Bindings: Mach-o, aber falsche Architektur - Python, Macos, Svm, libsvm, Mach-o

Ich versuche, libsvm auf meinem Mac (OS-X 10) zu installieren.6.8). Libsvm installiert sich gut für C ++ (ich kann svm-train verwenden, svm-predict binaries gut). Gemäß den Anweisungen habe ich make in libsvm-3.12 / python / folder eingegeben und folgende Ausgabe erhalten

<i>
make -C .. lib
if [ "Darwin" = "Darwin" ]; then 
SHARED_LIB_FLAG="-dynamiclib -W1,-install_name,libsvm.so.2"; 
else 
SHARED_LIB_FLAG="-shared -W1,-soname,libsvm.so.2"; 
fi; 
g++ ${SHARED_LIB_FLAG} svm.o -o libsvm.so.2
</i>

Aber wenn ich versuche, es in Python über "Import Svmutil" zu verwenden, erhalte ich folgende Fehlermeldung

<i>
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "svmutil.py", line 3, in <module>
from svm import *
File "svm.py", line 19, in <module>
"../libsvm.so.2"))
File "/Library/Frameworks/Python.framework/Versions/7.1/lib/python2.7/ctypes/__init__.py", line 353, in __init__
self._handle = _dlopen(self._name, mode)
OSError: dlopen(../libsvm.so.2, 6): no suitable image found.  Did find:
../libsvm.so.2: mach-o, but wrong architecture
</i>

Ich weiß nicht, wie ich diesen Fehler umgehen soll. Ich habe versucht, mit -m64 und -arch x86_64-Flags auch für g ++ zu kompilieren (während des "Make" -Prozesses von libsvm), aber ich erhalte weiterhin diesen Fehler. Kann mir bitte jemand sagen, wie ich dieses Problem umgehen kann?

Antworten:

1 für die Antwort № 1

Versuchen Sie es mit dem Bauen libsvm als Universal Binary:

make CFLAGS="-arch i386 -arch x86_64" CXXFLAGS="-arch i386 -arch x86_64" LDFLAGS="-arch i386 -arch x86_64"

Stellen Sie alternativ sicher, dass Sie eine geeignete Version von Python ausführen (überprüfen Sie das Banner des Python-Interpreters).