您的位置:首页 > 编程语言 > Python开发

python package numpy和scipy 的安装与配置

2015-04-11 09:58 639 查看
关于最早要用这个GAT——genomic association tester,最早怕要追溯到去年的这个时候了,安装一直搞不定,后来也就放下没有再用。因为是用python写的,要安装python以及一系列的package,我几度放弃几度磨叽,今天终于算是半搞定,说是半搞定,因为在安装SciPy的过程有好多warning,不知道未来跑大的dataset是否会出问题,而且目前只是在我笔记本上wubi安装的ubuntu上的尝试,不知道如果安装在所里服务器上能否成功,这个以后会补充在这个日志里。目前先把已成功安装的部分记录下来。

GAT自然需要先安装python,然后又提示需要numpy和scipy,这是两个最重要的依赖,据我粗略所知都是python中用于计算统计方面的包。所用ubuntu 12.04 LTS。

1.安装python

先到python官网下载python安装包。然后在命令行下解压、安装。python以及package的一般安装程序简单概括就是3步: configure, make, make install .$ tar -xvf Python-2.7.5.tar.bz2      #先解压tar包 $ cd Python-2.7.5

$ ./configure --prefix=/home/fzh/software/     #选择要安装的路径,发现我安装在默认的/usr/bin/下后,再安装别的包时会出现权限不允许的情况,于s是创建另一个路径安装。

$ make &&1.7.1 make install     #如果是binary code包,则不需要make和make install

python的可执行文件在/home/fzh/software/bin/  下,要记得把此路径写入~/.bashrc 中,以后调用就比较方便了。在我的ubuntu下,

$ vim ~/.bashrc    #在末尾行或任一空行写入: export PATH="/home/fzh/software/bin:$PATH"  即可。

2. (可选)安装pip, easy_install

可安装pip,easy_install 2个常用的安装工具,两者用于安装或卸载python package。安装之前,还需要安装另一个包setuptools, 可直接下载egg file(已编译过的?)

$ sh /picb/functgen2/fzh/setuptools-0.6c11-py2.7.egg --prefix=/home/fzh/software/

使用pip 自动安装p1.7.1akage numpy:

$ pip install numpy

某些包如果不能通过pip install 的话,可手动下载安装包,解压后进入安装包:

$ cd numpy-1.17.1

$ python setup.py install

通过这2个命令来手动安装。

3. 安装GAT和所需要的numpy, Cython

 


$ cd genomic-association-tester

$ python setup.py install   #忘记是否需要make了。。。

GAT的使用方法是 gatrun.py *****

numpy安装简单,但是在运行gatrun.py 时会报出关于numpy的错误,表示某些头文件找不到。根据提示,找到了这些头文件,错误发生的原因是它们所在的目录GAT找不到,所以简单的方法就是把它们都复制到GAT指示的寻找路径下,这些头文件所在原来的路径是:

~/software/lib/python2.7/site-packages/numpy/core/include/numpy/

现在把这个numpy/ 文件夹整体复制到另一个GAT可以找到的地方:

$ cp ~/software/lib/python2.7/site-packages/numpy/core/include/numpy  ~/software/include/python2.7/

补充:这些头文件中有一个叫做 arrayobject.h ,可以试着去find它,在GAT运行的一个c文件中,提示要调用这个头文件numpy/arrayobject.h, 因此在software/ 下: 

$ find . -name numpy/arrayobject.h

找到了它,并且尝试把它放到一个GAT可以找到的路径上。而发现同时这个头文件又会调用到numpy中的许多其它头文件,于是把numpy/ 文件夹整体复制到GAT能找到的路径上。

4. 安装scipy和配置BLAS/LAPACK

安装scipy需要许多dependences,在scipy的安装包的install.txt中有提示,其中,对于ubuntu>= 8.10:

You can get all the dependencies as follows:

        sudo apt-get install python python-dev libatlas3-base-dev gcc gfortran g++

其中gcc, gfortran, g++是可以的,python-dev, libatlas3-base-dev 不行。libatlas就是接下来要提到的两个libraryBlas和Lapack。

scipy的安装require两个函数库(libarary)Blas和Lapack。可直接下载Lapack包,其中包含了blas库(只是part of Blas,complete set可通过Atlas安装)。或者使用Atlas,ATLAS  is
a replacement for BLAS and parts ofLAPACK【1】。但是发现Atlas安装过程中需要disable
cpu throttling(节流),这个我试了好久也没做到,放弃之。发现根据此文http://hi.baidu.com/kaienfr/item/98a1f1bf9fcd4bf563388eb4  中的方法安装Lapack会非常简便。

官网下载Lapack,目前是 3.4.2 (2013.06.16) (上地址博文中声称是fortran版)http://www.netlib.org/lapack/lapack.tgz

$ tar -xvf lapack.tgz

$ cd lapack-3.4.2

编译lapack:

把 make.inc.example, 该名称 make.inc (这个文件很重要,一般来说,选择编译器都,定义编译参数,设置环境变量等都在这里设置)。运行:

$ make blaslib       # 编译生成librefblas.a,可改名为libblas.a

$ make lapacklib    # 编译生成liblapack.a  此名正好可用,不必改

就这么两条命令就完成编译了blas和lapack的编译了。把libblas.a 和liblapack.a 放到系统的库目录里,在我这里就是~/software/lib/ 下。

然后就可以安装scipy了。

后记:test GAT运行没有问题,结果出现的一个小问题是q alue无法计算,以后再研究。在服务器上安装以后再尝试。

【1】http://www.scipy.org/scipylib/building/linux.html#debian-ubuntu
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: