mac osx libsvm与python接口:ModuleNotFoundError: No module named 'svm'

在Mac OS X上使用Anaconda环境,尝试集成libsvm时遇到ModuleNotFoundError。问题出在libsvm的编译与Python模块导入上。首先,需要在libsvm路径下执行`make lib`。其次,原始教程中的`init.py`应为`__init__.py`。错误提示缺少LIBSVM包是因为svm.py与svmutil.py与运行脚本在同一目录,导致找不到正确的libsvm.so.2。解决方案是修改svmutil.py中导入svm的方式,将`from svm import *`改为`from libsvm.svm import *`,确保导入系统路径下的libsvm模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统为oxs,python平台为anaconda简单粗暴打包下载版,想要使用libsvm,采用方案为以下网址:

http://blog.youkuaiyun.com/daizziad1314/article/details/52528395

对这个方案我想先做出以下两点修正:

1. mac os 应该是在libsvm的路径下执行 >> make lib;虽然说个人现在也不是很懂这一步的意义是什么,也不是很懂.so.2的用途是什么。如果有网友知道这块的知识,欢迎在下方留言~

2. __init__.py而非init.py,有常识的都懂,不赘述。


然后呵呵了...

>>from libsvm import svmutil

ModuleNotFoundError: No module named 'svm'

还有一个错误,大概是说没有LIBSVM这个包。


后面又采用了一个方案:

http://www.cnblogs.com/zhizhan/p/5956303.html

但是略有心理洁癖,不想每次写都自行加路径,辣眼睛。



对于没有LIBSVM这个包,这个问题产生的原因是因为我在最开始的时候就把svm.py和svmutil.py这两个文件和运行的.py文件单独放在了一个路径p1下,因此python在运行的时候就找到的是这两个文件,而非通过http://blog.youkuaiyun.com/daizziad1314/article/details/52528395在site-packages里面放置的svm.py和svmutil.py。而svm.py在运行的时候会主动去找libsvm.so.2,但因为这个文件放在了site-packages的相应位置而没有放在p1的外面,程序就认为这个svm并非是一个module,所以就报错了。(代码长下面这个样子...)

try:
<

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值