mac osx libsvm与python接口:ModuleNotFoundError: No module named 'svm'
来源:互联网 发布:淘宝可以apple pay吗 编辑:程序博客网 时间:2024/05/29 02:37
系统为oxs,python平台为anaconda简单粗暴打包下载版,想要使用libsvm,采用方案为以下网址:
http://blog.csdn.net/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.csdn.net/daizziad1314/article/details/52528395在site-packages里面放置的svm.py和svmutil.py。而svm.py在运行的时候会主动去找libsvm.so.2,但因为这个文件放在了site-packages的相应位置而没有放在p1的外面,程序就认为这个svm并非是一个module,所以就报错了。(代码长下面这个样子...)
try:
dirname = path.dirname(path.abspath(__file__))
if sys.platform == 'win32':
libsvm = CDLL(path.join(dirname, r'..\windows\libsvm.dll'))
else:
libsvm = CDLL(path.join(dirname, '../libsvm.so.2'))
except:
# For unix the prefix 'lib' is not considered.
if find_library('svm'):
libsvm = CDLL(find_library('svm'))
elif find_library('libsvm'):
libsvm = CDLL(find_library('libsvm'))
else:
raise Exception('LIBSVM library not found.')
对于ModuleNotFoundError: No module named 'svm',确实是缺失了路径。但发生的原因个人理解应该是在于svmutil.py内部。这个文件里面有这么两行代码:
from svm import *
from svm import __all__ as svm_all
很明显,这个时候../python3.6/site-packages/libsvm并不在系统路径下,所以编译器并不知道要到哪里去找这个svm。所以这个时候如果把这两行改为:
from libsvm.svm import *
from libsvm.svm import __all__ as svm_all
我们通过sys可以看到../python3.6/site-packages/是在系统路径下的,所以编译器可以沿着这条路,找到libsvm,再找到svm,进而可以完成这个包的编译。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
在下计算机菜鸡,如上述有任何错误,请在留言区指出。万分感谢~
- mac osx libsvm与python接口:ModuleNotFoundError: No module named 'svm'
- mac python3.* ModuleNotFoundError: No module named 'MySQLdb'
- ModuleNotFoundError: No module named 'Cookie'
- ModuleNotFoundError :No module named 'win32api'
- ModuleNotFoundError: No module named 'mysite'
- ModuleNotFoundError: No module named 'ConfigParser'
- ModuleNotFoundError: No module named 'PyQt5'
- Python中ModuleNotFoundError: No module named 'SocketServer'问题解决
- 解决Python模块报错:ModuleNotFoundError: No module named 'cStringIO'
- Mac下ImportError: No module named content/ModuleNotFoundError: No module named 'itchat.content';
- 解决问题ModuleNotFoundError: No module named 'PyQt4'
- ModuleNotFoundError: No module named 'chatterbot.training'
- tensorflow安装:“ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'”
- 在用python操作mysql时报错:ModuleNotFoundError- No module named 'MySQLdb'
- python命令行执行 .py文件提示ModuleNotFoundError: No module named 'XXX' 解决方法
- Python使用libsvm的“ImportError: No module named svmutil”问题
- tensorflow导入报错ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'
- 解决Django下“ ModuleNotFoundError: No module named 'models' ”的错误
- 正则表达式:Pattern类与Matcher类详解
- Ubuntu安装ida pro
- Linux下SVN部署/安全及权限配置,实现web同步更新
- ubuntu修改默认启动级别
- android开发内存优化之如何有效避免oom
- mac osx libsvm与python接口:ModuleNotFoundError: No module named 'svm'
- 配天机器人:以技术创新为导向的企业发展之路
- Ubuntu下配置PYTHON工作环境
- 安装mysql环境命令
- 操作给定的二叉树,将其变换为源二叉树的镜像。
- 优化MySQL数据库的方法
- C++中类的大小计算方法总结
- Spring定时任务的几种实现
- js 字符串中是否存在