Como construir o libsvm-2.91 para Python no OS X 10.6.4 Snow Leopard usando o SWIG 2.0?

0

Problema:

Eu herdei o trabalho em um aplicativo do Django que usa módulos do Python que importam svmc. Quando eu digito ./manage.py runserver, recebo o seguinte:

Error: No module named svmc

Solução procurada:

sh > python
>>> import svmc
>>>

Mais bits e peças:

Então eu fez uma pergunta relacionada , que foi respondida, e me levou até aqui, já que não consigo realizar os passos necessários mencionados na solução fornecida pela dita resposta. / p>

Na minha outra máquina (Linux, Ubuntu, Lucid Lynx), eu consegui instalar bastante bem com o gerenciador de pacotes apt-get. Eu sou usando Homebrew para meu gerenciador de pacotes OS X, e preferiria evitar Darwinports, Macports ou Fink para instalar o libsvm.

Meu ambiente:

  • Mac OS X 10.6.4 Snow Leopard na arquitetura x86_64 baseada em Intel
  • GCC 4.2
  • SWIG 2.0
  • Python (64 bits)
  • Django 1.2.1
  • setuptools, disutils e muito mais!

O que eu tentei:

  • Eu baixei a libsvm-2.91 de link
  • eu descompacto arquivo, cd em python, executei make, coloquei libsvm.so.1 e svm.so em PATH em .bash_profile, e recebi o mesmo erro: nenhum módulo chamado svmc.
  • Eu olhei os arquivos .py no meu projeto referenciando o svmc, e notei que as únicas referências ao svmc estão no diretório python_old dos arquivos baixados (libsvm-2.91)
  • Eu baixei o SWIG 2.0 e o instalei
  • cd em libsvm-2.91 / python_old

Finalmente, corri (dentro de libsvm-2.91 / python_old):     sudo make cleaner     rm -f * ~ * .o * .so * .pyc * .pyo     rm -f svmc_wrap.c     sudo faz tudo

Vômito com tela truncada:

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

Eu apreciaria muito qualquer ajuda, idéias, sugestões ou comentários! Obrigado, Michaux

    
por mkelley33 06.07.2010 / 00:25

1 resposta

1

OK. Então eu não sei se posso realmente responder a essa pergunta. Se alguém que se depara com isso parece saber a resposta e gostaria de substituir a minha pseudo-resposta, por favor deixe um comentário, e vou mudar a minha resposta para um comentário, e substituí-lo por uma resposta melhor.

Por fim, eu estava apenas tentando chegar à solução mencionada acima na pergunta original. De fato, cheguei a uma solução que funciona bem:

Faça o download e execute o instalador incluso do pyvision!

Abra um terminal e cole a seguinte linha:

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

Uma vez que você digitou:

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

E agora você poderá abrir um terminal e digitar:

python
>>> import svmc
>>>

Voila! Sem erros, e libvm hotness (Versão 2.84, que deve funcionar bem na maioria das situações - Por favor, sinta-se livre para me corrigir!)

Obrigado e boa sorte a todas as pessoas do meu Macintosh OS X por aí! Michaux

    
por 06.07.2010 / 04:25