Как собрать libsvm-2.91 для Python на OS X 10.6.4 Snow Leopard с использованием SWIG 2.0?
Проблема:
Я унаследовал работу над приложением Django, которое использует модули Python, которые импортируют svmc. Когда я печатаю./manage.py runserver, я получаю следующее:
Error: No module named svmc
Требуемое решение:
sh > python
>>> import svmc
>>>
Больше кусочков:
Поэтому я задал соответствующий вопрос, на который был дан ответ, и привел меня сюда, так как я не могу выполнить необходимые шаги, упомянутые в решении, предоставленном указанным ответом.
На другой моей машине (Linux, Ubuntu, Lucid Lynx) мне удалось довольно хорошо установить с помощью менеджера пакетов apt-get. Я использую Homebrew для моего менеджера пакетов OS X и предпочитаю избегать Darwinports, Macports или Fink для установки libsvm.
Моя среда:
- Mac OS X 10.6.4 Snow Leopard на архитектуре Intel x86_64 на базе Intel
- GCC 4.2
- SWIG 2.0
- Python (64-битный)
- Джанго 1.2.1
- setuptools, disutils и многое другое!
Что я пробовал:
- Я скачал libsvm-2.91 с http://www.csie.ntu.edu.tw/~cjlin/libsvm/
- Я распаковываю файл, cd в python, запускаю make, помещаю libsvm.so.1 и svm.so в PATH в.bash_profile, и получаю ту же ошибку: нет модуля с именем svmc.
- Я посмотрел на файлы.py в своем проекте, ссылающемся на svmc, и заметил, что единственные ссылки на svmc находятся в каталоге загруженных файлов python_old (libsvm-2.91)
- Я скачал SWIG 2.0 и установил его
- перейдите в libsvm-2.91/python_old
Наконец, я запустил (внутри libsvm-2.91/python_old): sudo make cleaner rm -f *~ *.o *.so *.pyc *.pyo rm -f svmc_wrap.c sudo сделать все
Усеченная рвота экрана:
"_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
Буду очень признателен за любую помощь, идеи, предложения или комментарии! Спасибо, Мишо
1 ответ
ХОРОШО. Поэтому я не знаю, могу ли я действительно ответить на этот вопрос. Если кто-то, кто сталкивается с этим, кажется, знает ответ и хотел бы заменить мой псевдо-ответ, тогда, пожалуйста, оставьте комментарий, и я заменю свой ответ комментарием, и заменю его лучшим ответом.
В конечном итоге я просто пытался найти решение, указанное выше в первоначальном вопросе. На самом деле я нашел решение, которое прекрасно работает:
Скачайте и запустите установщик pyvision!
Откройте терминал и вставьте следующую строку:
svn co https://pyvision.svn.sourceforge.net/svnroot/pyvision/trunk pyvision
Как только вы получите его, наберите:
cd pyvision/R/libsvm/python/
python setup.py install
И теперь вы сможете открыть терминал и набрать:
python
>>> import svmc
>>>
Вуаля! Никаких ошибок и libsvm hotness (версия 2.84, которая должна работать нормально в большинстве ситуаций - пожалуйста, не стесняйтесь меня поправлять!)
Спасибо, и удачи всем моим Macintosh OS X людям там! Мишо