/ / Libsvm powiązania python: mach-o, ale niewłaściwa architektura - python, macos, svm, libsvm, mach-o

Powiązania Pythona z libsvm: mach-o, ale zła architektura - python, macos, svm, libsvm, mach-o

Próbuję zainstalować libsvm na moim komputerze Mac (OS-X 10.6.8). Libsvm instaluje się dobrze dla C ++ (mogę używać svm-train, binariów svm-predict) Zgodnie z instrukcjami wpisałem make w folderze libsvm-3.12 / python / i otrzymałem następujące wyniki

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

Ale kiedy próbuję go używać w pythonie za pomocą „import svmutil”, otrzymuję następujący błąd

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

Nie wiem, jak obejść ten błąd. Próbowałem skompilować z flagami -m64 i -arch x86_64 również dla g ++ (podczas procesu „Make” libsvm), ale nadal otrzymuję ten błąd. Czy ktoś może mi powiedzieć, jak obejść ten problem?

Odpowiedzi:

1 dla odpowiedzi № 1

Spróbuj zbudować libsvm jako uniwersalny plik binarny:

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

Alternatywnie, upewnij się, że używasz odpowiedniej wersji Pythona (sprawdź baner interpretera Pythona).