python中os.chdir()和from...import应用中的错误

来源:互联网 发布:网络统考成绩查询时间 编辑:程序博客网 时间:2024/06/06 10:45

作为一个python的新手,我是在学习libsvm中发现网上许多libsvm的python教程中经常会有这样的例子

  1. import os
  2. import sys

  3. os.chdir('C:\libsvm-3.17\python')
  4. from svmutil import *

  5. y, x = svm_read_problem('../lkagain.txt')
  6. = svm_train(y[:275], x[:275], '-c 5')

  7. y, x = svm_read_problem('../lk2.txt')
  8. p_label, p_acc, p_val = svm_predict(y[0:], x[0:], m)
  9. print p_label
  10. print p_acc
  11. print p_val
  12. 当我运行这个文件时总会报这样的错误ImportError: No module named svmutil。开始我以为是os.chdir()函数没有改变当前文件的目录,当我把目录输出之后发现目录确实改变了,后来又尝试读取了该目录下的文件,也读取成功。此时我迷茫了为什么我不能svmutil.py这个module引用。后来发现当我要使用一个module模块时,需要先将其路径导入sys.path中。

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

  13. import sys

  14. sys.path.append('E:\developertools\libsvm-3.20\python')

  15. from svmutil import *

  16. 就可以了。

  17. 同时在idle环境中用os.chdir可以达到相同效果。但是具体原理暂时还没弄明白,希望有路过大神评论,或以后明白了再来修改。



0 0