基于Win7、Python2.7安装一系列机器学习工具

来源:互联网 发布:tmplate可以写js 编辑:程序博客网 时间:2024/05/29 14:26

一、 已有环境

在笔记本电脑的win7环境下已经安装了Ecplise4.5.2和PyDev插件,同时按照《Python机器学习及实践一书》安装了Anaconda2 4.1.1 (64-bit)。多数软件安装在D:盘,但是考虑到:
1、公司虚机上Redhat Linux默认环境下是python2.7.5版
2、大数据环境是CDH-5.5.1-1.cdh5.5.1.p0.11-el6.parcel
对应的Hadoop版本是Hadoop 2.6.0-cdh5.5.1
对应的Spark版本是spark 1.5.0-cdh5.5.1
3、已有系统很多功能是基于Java1.7开发
故希望能够在Win7笔记本电脑搭建一个学习及研发环境。这个环境特点如下:
1、在Ecplise4.5.2上同时写基于Java1.7和Python2.7.5的Java和Python的机器学习程序;我不想学习那么多IDE,需要聚焦在业务问题的思考和解决上。
2、在笔记本上的运行环境和在公司测试及生产环境上的Hadoop和Spark环境一致,包括版本;我也尽力避免由于版本不一致引发额外的迁移工作。
3、能够使用python丰富的机器学习包和Spark Mlib;这个是今明两年,自己在公司项目上需要提前学习和准备使用的东东。

二、安装总结

本人比较愚笨,属于又老又菜的IT人,喜欢简单的安装方式,于是搜遍网络,逐个进行尝试,算是找到了相对简单的安装方案,以下内容都是在自己笔记本电脑上亲测过的,大家可以放心使用。

1、准备工作

为避免冲突,卸载Anaconda2 4.1.1 (64-bit),将Anaconda的环境变量去掉。 D:\Anaconda2;D:\Anaconda2\Scripts;D:\Anaconda2\Library\bin;只保留Python2.7.5
在win7命令行模式,连接互联网情况下,进入D:\Program Files\Python27\Scripts,使用easy_install pip,先安装pip9.0.1
在win7下,为了使安装简单,尽可能使用whl包安装,然后通过pip升级。

2、下载win7下whl包

到http://www.lfd.uci.edu/~gohlke/pythonlibs/下载WHL包
注:cp27代表python2.7,34/35/36代表python3不能用。win_amd64代表win7 64位操作系统。

3、用pip安装python的机器学习包

用whl安装包,用pip,安装numpy、scipy、pandas、matplotlib、scikit_learn、gensim、nltk,步骤比较类似,过程中提示需要新增的工具包,都是要安装的,如下:
1、安装numpy-1.11.3:
pip install D:/”Program Files”/Python27/mydownloads/whl/numpy-1.11.3+mkl-cp27-cp27m-win_amd64.whl
2、安装scipy-0.18.1:
pip install D:/”Program Files”/Python27/mydownloads/whl/scipy-0.18.1-cp27-cp27m-win_amd64.whl
win7下,scipy最新版是0.18.1但是其依赖的numpy只能是1.11.3,升级到1.12.0,则无法使用import时报错,提升找不到numpy_mkl
3、安装pandas0.19.2:
pip install D:/”Program Files”/Python27/mydownloads/whl/pandas-0.19.2-cp27-cp27m-win_amd64.whl
4、安装matplotlib-1.5.3:
pip install D:/”Program Files”/Python27/mydownloads/whl/matplotlib-1.5.3-cp27-cp27m-win_amd64.whl
5、安装scikit_learn0.18.1
pip install D:/”Program Files”/Python27/mydownloads/whl/scikit_learn?0.18.1?cp27?cp27m?win_amd64.whl
注:安装scikit_learn?0.18.1 用的加载包命令是:import sklearn
6、安装gensim-0.13.4.1
pip install D:/”Program Files”/Python27/mydownloads/whl/gensim-0.13.4.1-cp27-cp27m-win_amd64.whl
7 安装nltk-3.2.2
pip install D:/”Program Files”/Python27/mydownloads/whl/nltk-3.2.2-py2.py3-none-any.whl

3、基于源码安装xgboost

xgboost是用C++写的,我是完全照着这个帖子做的
如何安装xgboost
虽然版本不一致,但是安装方法是一样的,但是有个细节要特别注意,就是:到最后一步python setup.py install 时,执行报错,提示“setup() arguments must always be /-separated paths relative to the
setup.py directory, never absolute paths”。这个时候找到D:\Program Files\Python27\xgboost-master\xgboost-master\python-package下的setup.py文件,用UltraEdit打开
找到“include_package_data=True”这个设置,改成“include_package_data=False”,保存后,重新执行python setup.py install就OK了。
最终的安装结果是:
最终安装的python的各种扩展包

4、基于windows编译版本安装Spark1.5.0

为避免编译源码的麻烦和问题,使用在Windows环境下编译好的Hadoop和Spark版本,完全是按照这个帖子做的:
win7下如何安装Hadoop和Spark
只是把Spark版本换成了1.5.0,把Hadoop版本换成了2.6.0,保持和公司项目的生产环境一致。要点如下:
1、官网上没有编译好的Hadoop版本,到这个http://www.barik.net/archive/2015/01/19/172716/ 可以下载到基于windows的Hadoop2.6.0的编译版本

2、一个细节就是一定要设定好系统变量,包括SPARK_HOME、HADOOP_HOME和PATH,并且重启系统后生效。
也可以打开CMD窗口,用set path=c:命令,然后退出窗口,再打开一次,让PATH变量生效,用命令echo %path%查看是否生效了。
3、如果不安装Hadoop,在Spark读取文件的时候,包括不是Hadoop的CSV、XLS、TXT等文件,在Ecplise控制台都会报WARNING类错误,且代码运行不稳定。

5、基于上述环境安装TensorFlow,试了N种方法,均告失败。估计只能用Python3.5以上版本了。

0 0