build scikit-learn form source on red hat

由于公司虚拟机无法上网,所以安装scikit-learn只能从源码开始编译。下面记录了我的安装过程。

由于scikit-learn依赖numpy和scipy,同时,scipy依赖lapack和blas两个线性代数函数库,我们又要安装lapack和atlas两个库。另外,还要安装单元测试框架nose。 所以,我们先要安装nose、lapack、atlas、numpy和scipy这五个库。 scikit-learn需要python至少是python2.6,所以在安装这些依赖库之前我先安装python2.7。

###安装python2.7。

1.下载,解压文件

2.切换到源代码目录

3.执行如下命令

./configure --prefix=/usr/local
make
make install

安装完成后,python被安装在PREFIX/bin/python,我这里是 /usr/local/bin/python2.7。然后设置一下PATH环境变量,把刚才安装的python路径放到最前面,取代系统默认的python。

PATH=/usr/local/bin/:$PATH

###安装nose

1.下载,解压

2.切换到解压后的目录

tar xzvf 
cd 
python setup.py install
  1. 测试

    python

    import nose nose

###安装lapack

1.下载,解压

2.切换到解压后的目录

3.执行如下指令

cp INSTALL/make.inc.gfortran make.inc

4.修改make.inc

在OPTS和NOOPT后面加上选项-fPIC

OPTS = -O2 -frecursive -fPIC NOOPT = -O0 -frecursive -fPIC

-frecursive选项可能会导致错误,所以可以去掉。

5.

cd SRC
make

###安装atlas

1.下载,解压

2.切换到解压后生成的目录

3.创建一个atlas_rhel目录(目录名自定),并执行configure

mkdir atlas_rhel
../configure -Fa alg -fPIC --with-netlib-lapack-tarfile=../../lapack-3.5.0.tgz 

(我这里使用的相对路径,你需要根据自己的情况进行修改)

  1. make (这里可能会花很长时间,几个小时也说不定)

  2. 完成后,执行如下命令

    export LD_LIBRARY_PATH=/search/songwei/software/ATLAS/atlas_rhel/lib:$LD_LIBRARY_PATH

###安装numpy

1.下载,解压

2.切换到生成的目录

3.修改site.cfg

cp site.cfg.example site.cfg

修改site.cfg

[DEFAULT] library_dirs = /search/songwei/software/ATLAS/atlas_rhel/lib include_dirs = /search/songwei/software/ATLAS/atlas_rhel/lib [atlas] atlas_libs = lapack, f77blas, cblas, atlas

#这里的路径应该是包含生成的.a文件的路径

4.安装

python setup.py build
python setup.py install

5.测试是否成功:

python

>>>import numpy
>>>numpy.test()

###安装scipy

1.下载,解压

2.切换到生成的目录。

3.把numpy目录下的site.cfg复制过来(貌似不执行也可以)

4.安装

python setup.py build
python setup.py install

5.测试是否成功:

python
>>>import scipy
>>>scipy.test()

###安装scikit-learn 1.下载,解压 2.切换到生成的目录。 3.安装

python setup.py build
python setup.py install

参考:

1.http://pages.physics.cornell.edu/~myers/teaching/ComputationalMethods/python/WorldPyLinux_old.html 2.http://blog.mimvp.com/2014/04/linux-install-numpy-and-scipy/ 3.http://idolinux.blogspot.com/2011/02/atlas-numpy-scipy-build-on-rhel-6.html 4.http://www.scipy.org/scipylib/building/linux.html#building-atlas-by-hand 5.http://www.douban.com/note/203828349/

宁雨 /
Published under (CC) BY-NC-SA in categories MachineLearning  tagged with
comments powered by Disqus