9

我用 Make 在 Mac OS X 上构建了libsvm 。

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

谁能告诉我如何设置?在 libsvm 的 python 自述文件中,唯一的描述是

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.

我错过了什么?

4

7 回答 7

9

与其通过 libsvm 来使用 Python 访问它(我通过 MacPorts 安装了 libsvm,但import svmutil失败了),您可能想要安装流行的scikit-learn包,其中包含带有 Python 绑定的 libsvm的优化版本。

使用MacPorts安装非常简单:(sudo port install py27-scikit-learn适应py27您使用的任何 Python 版本)。

于 2013-04-02T02:49:29.500 回答
5

似乎是一个旧线程。希望它在未来对其他人有所帮助。

我有同样的问题。解决方案是

  1. make在 libsvm-3.0 目录下运行
  2. make在 libsvm-3.0/python 目录下运行

如果您只在 libsvm-3.0 文件夹中执行此操作,您将面临这个问题。在两个文件夹中执行此操作。然后它会正常工作。

于 2015-12-14T22:57:03.897 回答
2

如果您需要非 MacPorts 解决方案,请参阅此页面(尤其是来自 Thanassis 的评论):

在 OSX 10.6 上为 Python 安装 libsvm-3.0

尽管有帖子的标题,但该解决方案在装有 python 2.7 的 CentOS 机器上对我有用。

于 2013-09-16T18:23:32.620 回答
2

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

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

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

于 2014-11-05T19:57:45.950 回答
1

您无需使用 scikit learn 即可使用 libSVM。libsvm通过python加载模块时我遇到了同样的问题。我从 github 克隆了项目并使用命令行从命令行运行构建它make,在设置环境后,我得到了同样的错误。

我通过安装 libSVM 解决了这个问题homebrew

brew install libsvm

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

于 2017-01-21T13:16:16.463 回答
0

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

于 2014-06-22T02:18:37.973 回答
0

您也可以尝试使用 homebrew 安装 libsvm,例如“brew install libsvm”,然后您可以打开您的项目文件并将“svmutil.py”和“svm.py”文件复制到项目目录中,然后您可以使用命令'from svmutil import *',也许它会没事的。

于 2016-03-27T13:29:23.417 回答