centos源码编译安装python2.7.6并安装机器学习包scikit-learn 完全无问题安装流程
由于我要做一个机器学习作业,想用python scikit-learn来写。但是安装环境的时候出现了各种问题,花了我有将近半天的时间来解决,故这里做个分享。
各种包的源码我打包放到了百度网盘上,可以直接去下载,地址:http://pan.baidu.com/s/11YrgU,都是2014.5.30时止最新的版本。
其中有:numpy-1.8.1.tar.gz、scikit-learn-0.14.1.tar.gz、pip-1.5.6.tar.gz、matplotlib-1.2.0.tar.gz、scipy-0.14.0.tar.gz、Python-2.7.6.tgz、ez_setup.py、setuptools-3.6.zip、CentOS-Base.repo
下面介绍流程,如果对环境不熟悉请按照流程走,避免出现各种问题~
1、yum 安装依赖包
注:至于yum安装下载的优化加速这里就不多说了,我用的是我们学校的镜像mirror.bit.edu.cn,教育网内用这个速度应该都很快。
编译安装Matplotlib 前需要 libpng libpng-devel freetype freetype-devel
编译安装python2.7.6前需要 openssl openssl-devel
numpy 需要 blas
具体啥原因,我也不清楚。
所以第一步我们需要键入的命令是:
1 |
yum –y install gcc gcc-c++ gcc-gfortran blas blas-devel lapack lapack-devel atlas atlas-devel openssl openssl-devel libpng libpng-devel freetype freetype-devel |
2、编译安装python2.7.6
因为centos自带的是python2.6,好多软件都依赖2.6,所以不要卸载。
而我想用2.7.6版本的python,所以采用源码安装。并把默认的python命令改为2.7版本的。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
tar zxvf Python-2.7.6.tgz cd Python-2.7.6 ./configure --prefix=/usr/local make make install 完成后,设置软连接 mv /usr/bin/python /usr/bin/python2.6.old ln -s /usr/local/bin/python2.7 /usr/bin/python python --version 若返回 Python 2.7.6 则我们默认使用的python就变为了python2.7.6版本了。 但这会使yum造成一些问题。 yum list 会出问题 修改vim /usr/bin/yum将第一行#!/usr/bin/python改为#!/usr/bin/python2.6使yum调用2.6版本的python |
3、安装numpy
1 2 3 4 5 6 |
tar zxvf numpy-1.8.1.tar.gz cd numpy-1.8.1 python setup.py build python setup.py install cd .. 跳出numpy-1.8.1目录,并运行 python -c "import numpy",若未报错,则安装成功。 |
注意:若在numpy-1.8.1目录下运行该命令则会报错,并告知please exit the numpy source tree,意思为离开numpy的代码树,并重新加载python解释器。在该目录外运行命令即可!
4、安装matplotlib
1 2 3 4 5 6 |
tar zxvf matplotlib-1.2.0.tar.gz cd matplotlib-1.2.0 python setup.py build python setup.py install cd .. 跳出 matplotlib-1.2.0 目录,并运行 python -c "import matplotlib" ,若未报错,则安装成功。 |
5、安装scipy
1 2 3 4 5 6 |
tar zxvf scipy-0.14.0.tar.gz cd scipy-0.14.0 python setup.py build python setup.py install cd .. 跳出 matplotlib-1.2.0 目录,并运行python -c "import scipy",若未报错,则安装成功。 |
6、安装scikit-learn
1 2 3 4 5 6 |
tar zxvf scikit-learn-0.14.1.tar.gz cd scikit-learn-0.14.1 python setup.py build python setup.py install cd .. 跳出 scikit-learn-0.14.1 目录,并运行 python -c "import sklearn" ,若未报错,则安装成功。 |
7、安装pip
需要先安装ez_setup,ez_setup.py已在文件中,需要联网下载最新的setuptools。
1 2 3 4 |
python ez_setup.py tar zxvf pip-1.5.6.tar.gz cd pip-1.5.6 python setup.py install |
因为有一些python的软件是通过pip来安装的,故。
总结:
通过这个过程可以发现,其实,安装的这些python扩展包基本就那几步,下载扩展包,解压,进入目录,运行python setup.py build,然后python setup.py install。简单的要死。而我昨天晚上折腾了一个多小时弄的头晕的都没安装成功scikit-learn,睡一觉早上清醒了,各种查各种解决问题,最后终于弄出来了。可是,安装的时候问题出在哪呢?关键点就是第一步,我们通过yum安装了许多的依赖包。而网上的很多安装教程都是在各自的环境下安装成功的,有的他们的机器环境可以已经有了依赖包中的一些,这样安装成功,而没有提及那些他已经有的依赖包。所以,当我们在自己纯净的机器上安装时,发现会报各种错误,愿因就是缺少依赖包。这些步骤我是通过一个新的centos6.4系统测试通过的。如果您出现了难以解决的问题,或者在这个过程中出现了其他的问题,你解决了,欢迎留言交流,并一起完善,并帮助自己帮助新人快速成长。
好了,下午开始使用据说很强大的scikit-learn喽~ 哦对,下午先去学六级吧。。晚上还有课,只能明晚了。可是,明天是端午节!哼!又没约。