Python 之 LIBSVM 使用小结(二)

来源:互联网 发布:linux samba进程 编辑:程序博客网 时间:2024/05/16 01:32

网上许多libsvm的python教程中经常会有这样的例子,但是运行会出现 ImportError: No module named svmutil 的报错。

  1. import osimport sysos.chdir('C:\libsvm-3.17\python')from svmutil import *y, x = svm_read_problem('../lkagain.txt')m = svm_train(y[:275], x[:275], '-c 5')y, x = svm_read_problem('../lk2.txt')p_label, p_acc, p_val = svm_predict(y[0:], x[0:], m)print p_labelprint p_accprint p_val

    当我运行这个文件时会报这样的错误
  2. ImportError: No module named svmutil。
  3. 开始我以为是os.chdir()函数没有改变当前文件的目录,当我把目录输出之后发现目录确实改变了,后来又尝试读取了该目录下的文件,也读取成功。此时我迷茫了为什么我不能svmutil.py这个module引用。
  4. 后来发现当我要使用一个module模块时,需要先将其路径导入sys.path中。

    sys.path是python的搜索模块的路径集,是一个list。

    可以在python 环境下使用sys.path.append(path)添加相关的路径,但在退出python环境后自己添加的路径就会自动消失了!

  5. sys.path是python的搜索模块的路径集,主要将自己要使用的模块放入sys.path中就可以了。用法是

  6. import syssys.path.append('E:\developertools\libsvm-3.20\python')from svmutil import *

  7. 就可以了。

  8. 同时在idle环境中用os.chdir可以达到相同效果,在Python(xy)中暂时还不等效。

  9. 具体原理暂时还没弄明白,希望有路过大神评论,或以后明白了再来修改。

0 0
原创粉丝点击