因为个人电脑用的是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一次。

-----------------------------------------------------------------------------------------------------

基本上就是这么多

其它的我要继续摸索了,等到有时间再写吧,希望别是明年了 :-)