如何在 windows 7 下为 python 安装 libsvm?

Posted

技术标签:

【中文标题】如何在 windows 7 下为 python 安装 libsvm?【英文标题】:How do I install libsvm for python under windows 7? 【发布时间】:2012-10-04 08:06:00 【问题描述】:

想知道

我下载了 livsvm zip,但我不理解其中的说明。我已将 libsvm.dll 放在我的 c:\windows\system32 目录中,但是当我尝试时

import svmutil

from svm import *

我明白了

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "svmutil.py", line 3, in <module>
    from svm import *
  File "svm.py", line 16, in <module>
    '../windows/libsvm.dll'))
  File "C:\Python27\lib\ctypes\__init__.py", line 365, in __init__
    self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126] The specified module could not be found

【问题讨论】:

这个链接会让安装更清晰***.com/questions/12877167/… 这个链接***.com/questions/12877167/…安装会很清楚 【参考方案1】:

已解决: 1.导航到http://www.lfd.uci.edu/~gohlke/pythonlibs/#libsvm 2.下载对应你操作系统的libsvm的.whl文件。 3. 打开命令提示符并导航到包含下载的 .whl 文件的文件夹。 4. 在命令提示符下输入以下命令-pip install libsvm-3.20-cp27-none-win32.whl

注意:在 pip 安装后键入 .whl 文件的名称

【讨论】:

在 Windows 10 上,这是有效的。我没有调试为什么上述方法不起作用,但这很容易。【参考方案2】:

我在 Windows 7 和 libsvm 3.18 上也遇到了很多问题,上述解决方案都没有奏效。无论我尝试什么文件路径体操,它都找不到或不喜欢../windows/libsvm.dll 文件。我也遇到了 32 位和 64 位的不兼容问题(我的 python 是 64 位的)。

我为尝试从 Visual Studio 重新编译的痛苦做好了准备,但这最终是不必要的。最终对我有用的是简单地安装 scikit-learn,它包含 libsvm 并很好地包装在里面 (http://scikit-learn.org/stable/index.html)。

如果您像我一样使用 Anaconda 发行版,这将非常轻松。只需在命令行输入conda install scikit-learn

然后你可以import sklearn.svm.libsvm as svm 并像调用 libsvm 一样调用它,如果你想忽略 scikit-learn 的其他方面。它只是工作。

【讨论】:

【参考方案3】:

我发现在 Windows 上安装 libSVM 以及其他 Python 库的最佳方法是使用非官方的 Windows 二进制文件,此处:

http://www.lfd.uci.edu/~gohlke/pythonlibs/#libsvm

此页面为 Python 编程语言的官方 CPython 发行版提供了许多科学开源扩展包的 32 位和 64 位 Windows 二进制文件。

大多数二进制文件都是从 PyPI 或项目公共修订控制系统中的源代码构建的。源代码更改(如果有)已提交给项目维护者或包含在包中。

许多二进制文件依赖于 Numpy-MKL 1.8 和/或 Microsoft Visual C++ 2008(64 位或 32 位,用于 CPython 2.6 到 3.2)或 Visual C++ 2010(64 位或 32 位,用于 CPython 3.3 和 3.4)可再发行包。

【讨论】:

【参考方案4】:

我知道你 1 年前问过这个问题,但我仍然想发布我的解决方案,以防其他人受益。

    将 libsvm 放在任何地方。我在C:\Python27\Lib\site-packages\libsvm-3.17

    在 windows 环境中设置 PYTHONPATH。 转到系统属性 -> 高级 -> 环境变量。 添加新变量,命名为PYTHONPATH,设置值为C:\Python27\Lib\site-packages\libsvm-3.17\python

【讨论】:

【参考方案5】:

我认为没有必要将 dll 放在 C:\windows\system32 目录中,除非您使用的是旧版本的 Windows(XP 和更早版本)。

确保:

在 libsvm\python 目录中启动包含 from svmutil import * 的 python 测试脚本 您在 libsvm\windows 目录中仍有一份 libsvm dll 的副本(如果您将其移动到 C:\windows\system32,请将副本放回 libsvm\windows 目录中)

这适用于我的电脑。

【讨论】:

奇怪的是,它可以工作,但我如何避免将所有程序移动到该目录? 一旦你开始工作,你现在可以将你的程序移动到另一个文件夹,但确保你使用 import syssys.path.append('your_dir/libsvm/python') 包含 libsvm/python 文件夹。

以上是关于如何在 windows 7 下为 python 安装 libsvm?的主要内容,如果未能解决你的问题,请参考以下文章

Windows 7 上的 Kivy 开发环境

如何在windows下为pylint指定配置文件?

win7如何安python3版(32位)

centos 7.2 下为erlang添加protobuffs

在 IIS 7.5 和 Windows Server 2008 R2 下为 ASP.NET 授予对联网 UNC 文件夹的写入权限

如何在windows下使用pip安装