Проблема:

Я унаследовал работу над приложением 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 ответ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 людям там! Мишо

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .