在centos6.5 环境下安装scikit-learn

来源:互联网 发布:手机图片修改软件 编辑:程序博客网 时间:2024/04/30 00:12

        偶然的机会接触到scikit-learn,一直想安装他体验一下。但因为是centos6.5系统,官网对centos安装的资料比较大略,不是很详细,在网上搜一些安装的帖子,因为系统版本,原件版本的不同等,安装也不是特别的顺利。本周末,在研究scikit官网和各大网友的帖子后,又在一次次的安装失败后终于安装成功,记录如下,希望能帮助初学scikit的同学,大家少走弯路。

0.我的安装环境:centos 6.5 ; have Internet

1、官网的要求: Scikit-learn requires:  Scikit-learn requires:

          Scikit-learn requires:

  • Python (>= 2.6 or >= 3.3),  (在centos6.5中 Python为2.6,满足要求)
  • NumPy (>= 1.6.1),
  • SciPy (>= 0.9).\

2、scikit环境的安装

scipy与numpy是scikit的两个重要的数学工具,所以这两个软件的安装成功与否,直接影响scikit的学习。centos中,安装这两个文件包最简单的方法是yum,但是本人的yum源没有更新,安装的numpy与scipy不符合要求,又不知道国内的哪里的yum源符合条件,于是选择源码安装。

在网上查询安装的依赖关系:scipy的安装需要依赖于numpy、lapack、atlas,而numpy和sci的测试程序的运行又依赖于nose,因此,整个安装过程必须要按顺序执行的,否则是无法执行下去的。

环境安装的所有软件可以在此获得:http://pan.baidu.com/s/1sjQaorF

atlas3.10.1.tar.bz2

nose-1.2.1.tar.gz  

scipy-0.13.3.tar.gz
lapack-3.4.2.tgz    

numpy-1.8.1.tar.gz 

setuptools-15.2.zip

1)安装setuptools。这个工具的安装会方便后续scikit等的安装。

 unzip setuptools-15.2.zip

 cd setuptools-15.2

 python setup.py install

安装完毕


2)安装nose:在链接internet的条件下

easy_install nose==1.3.6

安装完毕

3)lapack可以不用安装,待会在安装atlas时指定lapack压缩包的目录即可;

4)安装atlas:(这个安装有点复杂,认真一下,也不难)

a、首先确定计算机处于最大性能模式(max performance):主要是让CPU处于全速工作模式

方法一:在bios(cpu 选项,或者电源管理选项)直接配置为max performance,重启即可;

方法二:yum install cpupowerutils

 cpupower -c all frequency-set -g performance

方法三:service cpuspeed stop

b、正式安装:

tar -jxvf  atlas3.10.1.tar.bz2

 cd ATLAS/

mkdir mysckit
cd mysckit/

../configure -b 32 -Fa alg -fPIC  --shared --with-netlib-lapack-tarfile=/data0/scikit/SRC/lapack-3.4.2.tgz  --prefix=/usr/local/atlas //-b 32 指定操作系统为32位或者64位(-b 64);  prefix指定atlas的安装目录;这里可能或报错

ERROR around arg 14 (lapackref).

USAGE: ./xconfig [flags] where flags are:
   -v <verb> : verbosity level
   -O <enum OSTYPE #>  : set OS type
   -s <enum ASMDIA #>  : set assembly dialect
   -A <enum MACHTYPE #> : set machine/architecture
   -V #    # = ((1<<vecISA1) | (1<<vecISA2) | ... | (1<<vecISAN))
   -b <32/64> : set pointer bitwidth
   -o <outfile>
   -C [xc,ic,if,sk,dk,sm,dm,al,ac] <compiler>
   -F [xc,ic,if,sk,dk,sm,dm,al,ac,gc] '<comp flags>'
   -Fa [xc,ic,if,sk,dk,sm,dm,al,ac,gc] '<comp flags to append>'
        al: append flags to all compilers
        ac: append flags to all C compilers
        gc: append flags to gcc compiler used in user-contributed index files.
        acg: append to all C compilers & the index gcc
        alg: append to all compilers & the index gcc
   -T <targ> : ssh target for cross-compilation (probably broken)
   -D [c,f] -D<mac>=<rep> : cpp #define to add to [CDEFS,F2CDEFS]
      eg. -D c -DL2SIZE=8388604 -D f -DADD__ -D f -DStringSunStyle
   -d [s,b]  : set source/build directory
   -f <#> : size (in KB) to flush before timing
   -t <#> : set # of threads (-1: autodect; 0: no threading)
   -m <mhz> : set clock rate
   -S[i/s] <handle> <val>  : special int/string arg
      -Si bozol1 <0/1> : supress/enable bozo L1 defaults
      -Si archdef <1/0> : enable/supress arch default use
      -Si ieee <1/0> : dis/allow optimizations that break IEEE FP standard
          (eg., NEON, 3DNow!)
      -Si latune <1/0> : do/don't tune F77 LAPACK routines
      -Si nof77 <0/1> : Have/don't have fortran compiler
      -Si nocygwin <0/1> : Do/don't depend on GPL cygwin library
                           (Windows compiler/cygwin install only)
   -tl <#> <list> : set # of threads, use list of affinity IDs
      -Si omp <0/1> : don'tuse/use OpenMP for threading
      -Si antthr <0/1/2> : nobuild/build/use Antoine's code for threading
      -Si lapackref <0/1>: Netlib lapack is not/is unpacked
                           to $BLDdir/src/lapack/ref
      -Ss kern <path/to/comp> : use comp for all kernel compilers
      -Ss ADdir <path/to/archdefs> : Get archdefs frm custom path
      -Ss pmake <parallel make invocation (eg '$(MAKE) -j 4')>
      -Ss f77lib <path to f77 lib needed by C compiler>
      -Ss flapack <path to netlib lapack>: used to build full lapack lib
      -Ss [s,d]maflags 'flags'
NOTE: enum #s can be found by : make xprint_enums ; ./xprint_enums
xconfig exited with 14
这主要是因为configure 语法错误,请检查configure配置语句,是不是少写或多写了“-”,或这“-”输入法错误。

make build    //编译,这个时间会很长,我当时用了一下午才编译完。如果报错如下:

make -f Make.top build
make[1]: Entering directory `/data0/scikit/SRC/ATLAS/mysckit'
Make.top:1: Make.inc: No such file or directory
Make.top:325: warning: overriding commands for target `/AtlasTest'
Make.top:76: warning: ignoring old commands for target `/AtlasTest'
make[1]: *** No rule to make target `Make.inc'.  Stop.
make[1]: Leaving directory `/data0/scikit/SRC/ATLAS/mysckit'
make: *** [build] Error 2
请确定系统是否为centos6.5

make check

make time

make install


 fgrep "F77 =" Make.inc  //结果为gfortran or fortran.这个结果需要记住

安装完毕

4)安装numpy:

 tar -zxvf  numpy-1.8.1.tar.gz

cd numpy-1.8.1
mv site.cfg.example   site.cfg

vim site.cfg

[DEFAULT]
library_dirs = /usr/local/lib:/atlas的安装目录/atlas/lib
include_dirs = /usr/local/include:/atlas的安装目录/include

[blas_opt]
libraries = f77blas, cblas, atlas

[lapack_opt]
libraries = lapack, f77blas, cblas, atlas

[amd]
amd_libs = amd
[umfpack]
umfpack_libs = umfpack

如果前面得到的Fortran编译器是gfortran的话,执行:


 python setup.py build --fcompiler=gnu95    //这里可能会安装失败可以 yum -y install gcc gcc-c++


如果前面得到的Fortran编译器是g77的话,执行:


 python setup.py build --fcompiler=gnu

然后:python  setup.py install 

5)安装:scipy

 tar -zxvf scipy-0.13.3.tar.gz
 cd scipy-0.13.3

vim site.cfg   (此文件需要自己创建)

[DEFAULT]
library_dirs = /usr/local/lib:/atlas的安装目录/atlas/lib
include_dirs = /usr/local/include:/atlas的安装目录/include

[blas_opt]
libraries = f77blas, cblas, atlas

[lapack_opt]
libraries = lapack, f77blas, cblas, atlas

[amd]
amd_libs = amd
[umfpack]
umfpack_libs = umfpack

如果前面得到的Fortran编译器是gfortran的话,执行:


 python setup.py build --fcompiler=gnu95    // yum -y install gcc gcc-c++


如果前面得到的Fortran编译器是g77的话,执行:


 python setup.py build --fcompiler=gnu

然后 python  setup.py install

安装完毕

3.安装scikit-learn

因为开始安装了easy_install(setuptools),这里的安装就方便了。

 easy_install -U scikit-learn

安装完毕

4、可以去官网找例子实验了

http://scikit-learn.org/dev/auto_examples/index.html















0 0
原创粉丝点击