如何为Python设置LIBSVM

如何为Python设置LIBSVM,python,svm,libsvm,Python,Svm,Libsvm,我用Make在macosx上构建 $ tar xzfv libsvm-3.17.tar.gz $ cd libsvm-3.17 $ make 这构建了各种libsvm二进制文件: $ ls COPYRIGHT heart_scale svm-predict.c svm-train.c tools FAQ.html java svm-scale svm.cpp windows Makefile matl

我用Make在macosx上构建

$ tar xzfv libsvm-3.17.tar.gz
$ cd libsvm-3.17
$ make
这构建了各种libsvm二进制文件:

$ ls
COPYRIGHT           heart_scale svm-predict.c   svm-train.c tools
FAQ.html            java        svm-scale   svm.cpp     windows
Makefile            matlab      svm-scale.c svm.def
Makefile.win    python      svm-toy     svm.h
README      svm-predict svm-train   svm.o
我还在
/usr/local
中链接到了这个:

$ ls -la /usr/local/
...
svm -> /usr/local/libsvm-3.17/
并将Python绑定附加到我的路径:

import sys
sys.path.append('/usr/local/svm/python')
但是Python绑定找不到“LIBSVM”库:

$ python test.py 
Traceback (most recent call last):
   File "test.py", line 8, in <module>
      import svmutil
   File "/usr/local/svm/python/svmutil.py", line 5, in <module>
      from svm import *
   File "/usr/local/svm/python/svm.py", line 22, in <module>
      raise Exception('LIBSVM library not found.')
Exception: LIBSVM library not found.

我遗漏了什么?

您可能希望安装流行的软件包,其中包含的优化版本是


安装非常简单:
sudo-port-install-py27-scikit-learn
(将
py27
改编为您使用的任何Python版本)。

如果您需要非MacPorts解决方案,请参阅本页(特别是来自Thanasis的评论):


尽管这篇文章的标题是这样的,但这个解决方案在使用Python2.7的CentOS机器上对我有效。

您应该进入/python并生成.so.1文件。

python中的find_库只查看扩展名为.so的文件。为了使其正常工作,您需要创建一个libsvm。因此:

%ln-s libsvm.so.2 libsvm.so


然后再试一次,它将正常工作

看起来像一根旧线。希望它能在将来帮助别人

我也有同样的问题。解决办法是

  • 在libsvm-3.0目录中运行
    make
  • 在libsvm-3.0/python目录中运行
    make

  • 如果您仅在libsvm-3.0文件夹中执行此操作,您将面临此问题。在两个文件夹中都执行此操作。那它就可以正常工作了

    您也可以尝试使用自制软件安装libsvm,如“brew安装libsvm”,然后打开项目文件并将“svmutil.py”和“svm.py”文件复制到project floder中,然后使用命令“from svmutil import*”,也许就可以了。

    使用libsvm不需要使用scikit学习。我在通过python加载
    libsvm
    模块时遇到了同样的问题。我从github克隆了这个项目,并使用
    make
    从命令行运行build,在设置环境之后,我得到了相同的错误

    我通过
    自制
    安装libSVM解决了这个问题:

    brew安装libsvm


    这不包括特定于python的二进制文件,因此您仍然需要从github进行克隆和制作,并设置环境。

    旁注:与其自己编译程序,不如使用非常好的MacPorts manager之类的包管理器:包维护人员已经为您解决了编译问题。:)我在64位Unix环境(64位Python安装)中也遇到了同样的问题。就我而言,尝试64位Liblinear解决了问题。完成了,太棒了。谢谢EOL。我很难安装Macports。超级背包马上就起作用了。你对MacPorts有什么问题?我问这个问题是因为MacPorts是一项很好的投资:它包含15k+包(几乎总是)自动编译。如果我没记错的话,安装过程需要长时间下载(XCode),需要向Apple注册,运行.pkg安装程序,并可能配置shell路径(除非您使用bash,在这种情况下,这是为您完成的)。一旦这样做了,事情通常运行得相当顺利。如果我没记错的话,我认为我无法让scipy安装,而scikit学习依赖于它。我试图从sourceforge下载scipy,但收到一条奇怪的消息:“scipy无法安装在此磁盘上。scipy需要系统Python 2.7才能安装。”,但我不知道该怎么做。因此,可能不是macports本身的错误,但我在大约半小时后放弃了安装整个堆栈,然后找到了超级包。
    Installation 
    ============
    
    On Unix systems, type
    
    > make
    
    The interface needs only LIBSVM shared library, which is generated by
    the above command. We assume that the shared library is on the LIBSVM
    main directory or in the system path.