因为个人电脑用的是ubuntu+win7 64位双系统
平时的话windows用的多一点,于是在win7上装了python2.7
python比较强大的功能来自于它的的开源库,各种开源库,32/64 bit都有,
有一个很好的网站, 来自UC Irvine分校
http://www.lfd.uci.edu/~gohlke/pythonlibs
上面有几乎可能用到的所有python库,包括用的比较多的,numpy,scipy,NLTK,matplotlib等等
然后说说几个遇到的问题:
1.版本
因为在使用机器学习算法的时候需要用到Numpy, scipy, matplotlib,因此需要在上面的网站里找到并且下载
安装的时候需要注意,python库的版本需要跟python的版本一致而不是windows的版本
我用的是32位的python2.7 因此分别下载了上面三个库的32位版本
血与泪的教训就是,自己一直纠结于自己的64位操作系统,忘了自己装的的32位的python,所以出了很多莫名其妙的问题
比如,如果32位的python安装了64位的numpy库,你在python command line中输入:
from numpy import *
就会出现报错:
python ImportError: DLL load failed: %1 不是有效的 Win32 应用程序
2.库之间的依赖
依赖这个概念有点抽象。说白了就是这几个库的安装顺序。
举个例子,假设库B依赖于库A,那么在安装B之前需要安装库A。安装的顺序就是:库A-->库B
比如我要安装一个使用matplotlib库,这个库就会有很多的依赖:numpy scipy pyparsing等等
如果你没有安装numpy而直接安装了matplotlib库,然后在命令行输入:
import matplotlib
则会报错:
ImportError: matplotlib requires pyparsing
可能还会出现以下错误:
ImportError: No module named six
这些错误的出现都是因为没有弄清库之间的一来而安装错了顺序,所以重新调整一下安装顺序就好
因此,建议安装的顺序是,numpy, scipy, pyparsing, matplotlib
3.函数更新
最后是一个python使用的小问题,很多初学者应该都会忘记吧。自己也是出了很多莫名其妙的错误之后才发现的。
如果在一个func.py文件中用到了定义了某个函数func:
####################
# name:func
# parameter: null
# return: bool
####################
def func():
operation
return True
在命令行中使用它:
import func
如果你修改了func.py中的定义,比如把函数中的
return True
改成了
return False
在重新保存了func.py之后,请一定记得在命令行中重新
import func
这样才能在后面的代码中使用修改了过后的函数
因为命令行中所用到的库是你最新一次import的库
如果只是在.py文件中做了更改并保存,在python的命令行里并不知道你对.py文件的操作,只知道你在命令行里import了哪些文件。
因此,python编程的一个好习惯是,如果用到了被修改的py文件,请在命令行里重新import一次。
-----------------------------------------------------------------------------------------------------
基本上就是这么多
其它的我要继续摸索了,等到有时间再写吧,希望别是明年了 :-)