windows中python使用libsvm(一)

1、点击下载libsvm

https://www.csie.ntu.edu.tw/~cjlin/libsvm/oldfiles/

结果如下:

1、添加动态链接文件(.dll文件)

(1)确定本机的python版本

(2)在下载的libsvm文件夹中,有一个文件夹叫做windows,里面有一个动态链接文件libsvm.dll,这个文件默认是32位系统格式的,如果你的Python是32位的话,则可以直接用这个dll文件,将在拷贝到C:\Windows\System32下即可。

(3)如果你的系统是64位的,则需要重新编译64位的dll文件。假设你已经安装了VS,以安装了VS2012为例,你可以在win10的全部应用中的VS目录下找到 VS2012 x64 本机工具命令提示符,这个小黑框,然后用cd命令进入到你下载的libsvm的文件中,输入以下指令:nmake -f Makefile.win clean all

便会自动调用指令生成64位的dll,生成后,拷贝到C:\Windows\System32目录下。因为Python版本的svm需要调用很多c语言实现的接口,所以必须添加这个动态链接文件,否则运行会出错。

3、导入模块

如果libsvm需要经常使用,可以将libsvm包添加到Python的默认lib中,也就是放到Python安装路径下的Lib文件夹下的site-packages文件夹中。

然后再libsvm文件夹中添加_init_.py(init前后都是双下划线)文件,在libsvm中的Python文件夹中也添加_init_.py文件。Python包,也就是能够导入的文件夹包中,必须包含_init_.py,否则无法实现导入。


 

这样导入:

from libsvm.python.svm import *

from libsvm.python.svmutil import *

出现错误(1):


 

经查找是版本的问题,换成32位的python就可以了。

下载地址:https://www.anaconda.com/download/

问题(2):

from libsvm.python.svmutil import *

Traceback (most recent call last):

  File "", line 1, in

    from libsvm.python.svmutil import *

  File "D:\Anaconda3\lib\libsvm\python\svmutil.py", line 3, in

    from svm import *

ModuleNotFoundError: No module named 'svm'

解决方案:

import sys

path="D:\Anaconda3\lib\libsvm\python"

sys.path.append(path)

import os

os.chdir(path)

from libsvm.python.svmutil import *

from libsvm.python.svm import *

  

猜你喜欢

转载自blog.csdn.net/u013004700/article/details/81093642