Python下大多数工具包的安装都很简单,只需要执行 “python setup.py install”命令即可。然而,由于SciPy和numpy这两个科学计算包的依赖关系较多,安装过程较为复杂。网上教程较为混乱,而且照着做基本都不能用。在仔细研读各个包里的README和INSTALL之后,终于安装成功。现记录如下。

系统环境:

OS:RedHat5

Python版本:Python2.7.3

gcc版本:4.1.2

各个安装包版本:

scipy-0.11.0

numpy-1.6.2

nose-1.2.1

lapack-3.4.2

atlas-3.10.0

依赖关系:scipy的安装需要依赖于numpy、lapack、atlas(后两者都是线性代数工具包,不清楚的自行google之。。。),而numpy和sci的测试程序的运行又依赖于nose,因此,整个安装过程必须要按顺序执行的,否则是无法执行下去的。

安装步骤:

1、安装nose

这个安装比较简单,解压缩nose的安装文件,进入nose的目录,直接运行setup.py即可:

tar -zxvf nose-1.2.1.tar.gz

cd nose-1.2.1

python setup.py install

2、安装lapack

由于最新版本的ATLAS可以直接集成lapack的安装压缩文件进行编译,因此,如果仅在python下使用的话,可以不用安装lapack。只需要下载压缩文件:lapack-3.4.2.tgz 即可。

3、安装ATLAS

这个的安装主要是配置一些选项,包括配置成64位库文件、位置无关的以及共享的链接库。详细的配置说明在atlas安装包 doc/ 下的pdf文件中。可查阅。

下面是我的安装过程:

tar -jxvf atlas3.10.0.tar.bz2

cd ATLAS

mkdir obj64

../configure -b 64 -Fa alg -fPIC -shared --prefix=/配置atlas的安装路径/atlas --with-netlib-lapack-tarfile=/lapack安装压缩文件存放的目录/lapack-3.4.2.tgz

(注:这个配置时间非常长,在Core i7 处理上,大概1个小时左右)

make

(下面是一些检查过程,保证没有问题之后再进行安装)

make check

make time

make install

至此,atlas安装完成。不过我们要记录下编译过程中所用的fortran编译器类型,这个信息在下面安装numpy和scipy的时候要用。还是在目录 obj64/ 下,执行

fgrep "F77 =" Make.inc
可以看到  F77 = gfortran
记下这个编译器类型 gfortran.

4、安装numpy

numpy和scipy的安装过程都要显式的指明所用fortran编译器的类型,而且要与前面编译atlas时一致(在本文中即:gfortran),这一点非常重要,否则很多功能都会出错。

首先配置numpy目录下的site.cfg文件,指明atlas库的位置:

tar -zxvf numpy-1.6.2.tar.gz

cd numpy-1.6.2

cp 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

接下来配置安装numpy所需要的Fortran编译器类型:

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

python setup.py build --fcompiler=gnu95

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

python setup.py build --fcompiler=gnu

然后执行

python setup.py install

安装完成

5、安装scipy

与安装numpy类似:

tar -zxvf scipy-0.11.0.tar.gz

cd scipy-0.11.0

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

接下来配置安装numpy所需要的Fortran编译器类型:

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

python setup.py build --fcompiler=gnu95

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

python setup.py build --fcompiler=gnu

然后执行

python setup.py install

安装完成

然后可以在python下执行相应的测试程序:

python

>>> import nose

>>> import numpy

>>> import scipy

>>> numpy.test('full')

等待。。。。

>>> scipy.test('full')

到这里,整个安装过程结束。

Python下科学计算包numpy和SciPy的安装【原创】的更多相关文章

  1. Python下科学计算包numpy和SciPy的安装

    转载自:http://blog.sina.com.cn/s/blog_62dfdc740101aoo6.html Python下大多数工具包的安装都很简单,只需要执行 “python setup.py ...

  2. Linux下Python科学计算包numpy和SciPy的安装

      系统环境: OS:RedHat5 Python版本:Python2.7.3 gcc版本:4.1.2 各个安装包版本: scipy-0.11.0 numpy-1.6.2 nose-1.2.1 lap ...

  3. 第六节,Python的科学计算包——Numpy

    1.基本类型(array) import numpy as np a=[1,2,3,4] b=np.array(a) #array([1,2,3.4]) type(b) #<type 'nump ...

  4. 动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题

    动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题 D3 ...

  5. Python的科学计算包matplotlib setup

    回想起大学四年 专业一直使用matlab,然而我却没在PC上装成功过,以前懒于思考这种数学工具的作用,直到最近,大学同学研究生要毕业了,几经交流,和自己阅读了一些机器学习的教材之后,发觉科学计算包和画 ...

  6. python科学计算包numpy用法(一)

    numpy是python中一个用来做科学计算的包,用起来十分方便,下面是我总结的numpy的用法: 1.如何创建矩阵 创建矩阵有很多种方法,主要包括以下几种: 通过array函数创建 >> ...

  7. 科学计算包Numpy

    Numpy 用于科学计算的python模块,提供了Python中没有的数组对象,支持N维数组运算.处理大型矩阵.成熟的广播函数库.矢量运算.线性代数.傅里叶变换以及随机数生成等功能,并可与C++.FO ...

  8. [笔记]我的Linux入门之路 - 05.Eclipse的Python开发环境搭建与Numpy、Scipy库安装

    一.Python环境 直接终端查询下python安装没:python --version Python 2.7.12 Ubuntu竟然已经装了Python2.7,那就好说了.不然自己装和装jdk差不多 ...

  9. windows下数据挖掘相关包numpy、pandas的安装

    安装Anaconda的绕道 这里介绍如何在windows下安装numpy/scipy/matplotlib/pandas/scikit_learn等数据分析相关包 相关环境: win7 64位 pyt ...

随机推荐

  1. umask相关内容

    umask权限过滤符新创建的文件的权限为666,即- rw- rw- rw-新创建的目录的权限为777,即d rwxrwxrwx如umask值为0022,后三位022,即 --- -w- -w-上述默 ...

  2. JS 数据类型转换以其他

    JavaScript 是一种弱类型的语言,也就是没有类型限制,变量可以随时被赋予任意值. 同时,在程序运行过程中,类型会被自动确认的.因此,这就是涉及到数据的类型转换.在 JS 的世界中,数据类型转换 ...

  3. jquery自定义插件-参数化配置多级菜单导航栏插件

    1 自定义菜单导航栏插件的必要性 看图说话,下面是利用自定义的菜单导航栏插件simpleMenu创建的网站导航示例: 插件默认提供的是如上图的导航栏样式,即一二级菜单为横向分布:三四级菜单为纵向分布. ...

  4. ArrayList to Array Conversion in Java

    ArrayList to Array Conversion in Java Following methods can be used for converting ArrayList to Arra ...

  5. Linq简单使用

    简单使用 from子查询 关联多个数据源 分组 let 子句 查询对象(上例中为list变量)为IEnumerable<T>或IQueryable<T>类型 查询返回结果同样为 ...

  6. 20169211《Linux内核原理与分析》第一周作业

          本科期间,学校开设过linux相关的课程,当时的学习方式主要以课堂听授为主.虽然老师也提供了相关的学习教材跟参考材料,但是整体学下来感觉收获并不是太大,现在回想起来,主要还是由于自己课下没 ...

  7. SQL必知必会 -------- 通配符、计算字段、函数

    1.LIKE操作符 1.1百分号(%)通配符 SELECT prod_id, prod_name FROM Products WHERE prod_name LIKE 'Fish%' 此例子使用了搜索 ...

  8. 【Java学习】调用ByteBuffer.getInt()方法得到808464432

    调用ByteBuffer.getInt()方法遇到的奇怪错误 最近在参加阿里的中间件比赛,中间用到了RocketMQ的思想,并且主要集中在使用NIO来读写文件.其中遇到了一个很蛋疼的问题,想了半天想不 ...

  9. Django Restframework 实践(二)

    按照自己的方法来写接口 ''' @api_view([ 'POST','GET',]) 允许请求的是get或post方法,这里去掉get那么就不能用get方法请求 @permission_classe ...

  10. [BZOJ3598][SCOI2014]方伯伯的商场之旅(数位DP,记忆化搜索)

    3598: [Scoi2014]方伯伯的商场之旅 Time Limit: 30 Sec  Memory Limit: 64 MBSubmit: 449  Solved: 254[Submit][Sta ...