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
lapack-3.4.2
atlas-3.10.0
依赖关系:scipy的安装需要依赖于numpy、lapack、atlas(后两者都是线性代数工具包),而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')
REF:
http://blog.sina.com.cn/s/blog_62dfdc740101aoo6.html
Linux下Python科学计算包numpy和SciPy的安装的更多相关文章
- Python下科学计算包numpy和SciPy的安装
转载自:http://blog.sina.com.cn/s/blog_62dfdc740101aoo6.html Python下大多数工具包的安装都很简单,只需要执行 “python setup.py ...
- Python下科学计算包numpy和SciPy的安装【原创】
Python下大多数工具包的安装都很简单,只需要执行 "python setup.py install"命令即可.然而,由于SciPy和numpy这两个科学计算包的依赖关系较多,安 ...
- python科学计算包numpy用法(一)
numpy是python中一个用来做科学计算的包,用起来十分方便,下面是我总结的numpy的用法: 1.如何创建矩阵 创建矩阵有很多种方法,主要包括以下几种: 通过array函数创建 >> ...
- 动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题
动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题 D3 ...
- Python科学计算库Numpy
Python科学计算库Numpy NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. 1.简 ...
- Python科学计算包模块的安装(ubuntu)
Python的科学计算包设计到C语言代码的编译,采用pip的方式安装会出现错误. 一种简单的方式是采用的集成包,具体的步骤参考:https://www.continuum.io/downloads#_ ...
- python科学计算之numpy
1.np.logspace(start,stop,num): 函数表示的意思是;在(start,stop)间生成等比数列num个 eg: import numpy as np print np.log ...
- python科学计算模块NumPy
NumPy是Numerical Python的简称,是高性能科学计算和数据分析的基础包.其实NumPy 本身并并没有提供太多的高级的数据分析功能, 但是理解NumPy数组以及面向数组的计算将有利于你更 ...
- 科学计算包Numpy
Numpy 用于科学计算的python模块,提供了Python中没有的数组对象,支持N维数组运算.处理大型矩阵.成熟的广播函数库.矢量运算.线性代数.傅里叶变换以及随机数生成等功能,并可与C++.FO ...
随机推荐
- 构造方法、this和super
1.构造方法概述 创建对象的时候会调用构造方法.创建对象时需要给对象的属性初始化,这时需要有参的构造方法. 构造方法的格式: 修饰符 构造方法名(参数列表) { } 构造方法的体现: 构造方法没有返回 ...
- 实现 iPhone 电子书的分页显示功能的代码
本文转载至 http://blog.csdn.net/zaitianaoxiang/article/details/6650497 原文地址:实现 iPhone 电子书的分页显示功能的代码作者:醉吻 ...
- 标准模板库--STL
标准模板库STL 1.泛型程序设计 C++ 语言的核心优势之一就是便于软件的重用 C++中有两个方面体现重用: 1.面向对象的思想:继承和多态,标准类库 2.泛型程序设计(generic progra ...
- 【BZOJ3998】[TJOI2015]弦论 后缀自动机
[BZOJ3998][TJOI2015]弦论 Description 对于一个给定长度为N的字符串,求它的第K小子串是什么. Input 第一行是一个仅由小写英文字母构成的字符串S 第二行为两个整数T ...
- Delphi中的dll操作
利用delphi dll wizard进行dll的编写. 创建:保存时改dll名称 library test2; uses SysUtils, Classes, forms, dialogs; {$R ...
- Vue.js之组件嵌套小demo
Vue.js之组件嵌套的小demo项目 第一步:初始化一个wabpack项目,这里不在复述.第二步:在components文件夹下新建Header.vue Footer.vue和Users.vue三个 ...
- 浅析 Pycharm 内存、cpu 占用率
浅析 Pycharm 内存.cpu 占用率 本机配置参数: ------------------------------------------ Windows 10 专业版 X64 ----- ...
- Python3 面向对象(1)
面向.概述 面向过程: 根据业务逻辑从上到下写垒代码面向过程的设计的核心是过程,过程即解决问题的步骤, 面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西 优点: 极大降低了程序的 ...
- 检查arg是方法还是函数?
from types import MethodType,FunctionType def check(arg): """ 检查arg是方法还是函数? :param ar ...
- Android-自己定义meta-data扩展数据
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/wwj_748/article/details/25079991 Android-自己定义meta-d ...