【问题标题】:Problem building libsvm-3.0 on CentOs 5.5 for Python-2.7.1在 CentOs 5.5 上为 Python-2.7.1 构建 libsvm-3.0 时出现问题
【发布时间】:2011-07-03 21:25:56
【问题描述】:

尝试在 CentOs 5.5 上安装 libsvm-3.0 以用于替代 python 构建(python-2.7.1 而不是默认的 2.4)。此 python 安装在 /opt/python2.7 中。我下载了源文件并在主目录和 python 子目录中运行了 MAKE。然后我将所有内容复制到 /opt/python2.7/lib/python2.7/site-packages/libsvm

当我在 Macintosh 10.6.6 上执行此操作时,我必须执行说明中没有的几个额外步骤。它们在我的博客here 上进行了描述。关键步骤是将以下内容添加到 svm.py

 import os.path
_PATH = os.path.join( *os.path.split(__file__)[:-1] )

并修改第一条语句

if find_library('svm'):
   libsvm = CDLL(find_library('svm'))
elif find_library('libsvm'):
   libsvm = CDLL(find_library('libsvm'))
else:
   if sys.platform == 'win32':
      libsvm = CDLL('../windows/libsvm.dll')
   else:
      libsvm = CDLL('../libsvm.so.2')

看起来像这样:

if find_library('svm'):
  libsvm = CDLL(find_library('svm'))
elif find_library('libsvm'):
  libsvm = CDLL(find_library('libsvm'))
else:
  if sys.platform == 'win32':
    libsvm = CDLL(os.path.join(_PATH,'windows','libsvm.dll'))
  else:
    libsvm = CDLL(os.path.join(_PATH,'libsvm.so.2'))

但是,这些配置都不适用于此 Linux 版本。我绝对不是 Linux 人,所以我不知道可能出了什么问题。

在解释器中工作以试图解决这个问题,我注意到 cytpes.util.find_library('svm') 或 ctypes.util.find_library("libsvm.so.2") 返回空值,所以它肯定会不知道 .so 在哪里。

我可以通过设置 libsvm=CDLL(os.path.abspath("libsvm.so.2")) 手动强制解释器中的位置。然后我只能在该会话期间导入 svm。

非常感谢任何帮助。

标记

【问题讨论】:

    标签: python centos libsvm


    【解决方案1】:

    好的,问题解决了。愚蠢的我。而不是添加__init__.py 在 libsvm 目录中,我添加了 init.py。一旦我改变了它,它就起作用了。尽管如此,添加__init__.py 的需要应该包含在 libsvm-3.0 安装说明恕我直言。

    【讨论】:

      猜你喜欢
      • 2015-04-25
      • 2012-05-07
      • 2011-05-18
      • 2011-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-20
      • 1970-01-01
      相关资源
      最近更新 更多