Linux 安装numpy和scipy
Python下的大多数工具包安装都很简单,只需要执行 “python setup.py install xxx”命令即可。
然而,由于SciPy和numpy这两个科学计算包的依赖关系较多,安装过程较为复杂。网上教程较为混乱,而且照着做很多基本不能用。在仔细研读各个包里的README和INSTALL之后,终于安装成功。现总结一下,让需要的人少走弯路。
官方提供的安装方法:Installing the SciPy Stack
1) Debian/Ubuntu:
sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
2) Redhat/CentOS
sudo yum install numpy scipy python-matplotlib ipython python-pandas sympy python-nose
下面介绍手动安装方法
系统环境:
OS版本:Ubuntu 12.04.4 LTS / Linux ubuntu 3.2.0-60-generic x86_64 GNU/Linux
Python版本:Python 2.7.6
gcc版本:gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
各个安装包版本:
nose-1.3.1
lapack-3.5.0
atlas-3.10.1
scipy-0.11.0
numpy-1.6.2
依赖关系:scipy的安装需要依赖于numpy、lapack、atlas(后两者都是线性代数工具包,不清楚的自行google),而numpy和sci的测试程序的运行又依赖于nose,因此,整个安装过程必须要按顺序执行的,否则是无法执行下去的。
安装步骤:
1、安装nose
这个安装比较简单,解压缩nose的安装文件,进入nose的目录,直接运行setup.py即可:
下载nose: https://nose.readthedocs.org/en/latest/
tar -zxvf nose-1.3.1.tar.gz
cd nose-1.3.1
python setup.py install
检验安装成功:
#python
>>> import nose
>>> nose
<module 'nose' from 'nose/__init__.pyc'>
2、安装lapack
由于最新版本的ATLAS可以直接集成lapack的安装压缩文件进行编译,因此,如果仅在python下使用的话,可以不用安装lapack。只需要下载压缩文件:lapack-3.5.0.tgz
官方下载地址: http://www.netlib.org/lapack/
3、安装atlas
这个的安装主要是配置一些选项,包括配置成64位库文件、位置无关的以及共享的链接库。详细的配置说明在atlas安装包 doc/ 下的pdf文件中,可查阅。
下面是我的安装过程:
下载地址: http://sourceforge.net/projects/math-atlas/,下载最新版本:atlas3.10.1.tar.bz2
tar -jxvf atlas3.10.1.tar.bz2
cd ATLAS
mkdir myobj64
cd myobj64
../configure -b 64 -Fa alg -fPIC -shared --prefix=/配置atlas的安装路径/atlas --with-netlib-lapack-tarfile=/lapack安装压缩文件存放的目录/lapack-3.4.2.tgz
或
sudo ../configure -b 64 -D c -DPentiumCPS=3901.000 -Fa alg -fPIC --prefix=/opt/atlas3.10.1/ --with-netlib-lapack-tarfile=/opt/lapack-3.5.0/lapack-3.5.0.tgz
其中的参数说明如下:
numpy_scipy/ATLAS/my64Obj$ grep MHz /proc/cpuinfo cpu MHz : 3901.000 cpu MHz : 3901.000 cpu MHz : 3901.000 cpu MHz : 3901.000
-Fa alg -fPIC 得到与位置无关的代码,生成动态的共享库
Unable to find usable compiler for F77; abortingMake sure compilers are in your path, and specify good compilers to configure
(see INSTALL.txt or 'configure --help' for details)make[1]: *** [atlas_run] Error 8
make[1]: Leaving directory `/home/homer/Downloads/tool_server/python/numpy_scipy/ATLAS/my64Obj'
make: *** [IRun_comp] Error 2
ERROR 512 IN SYSCMND: 'make IRun_comp args="-v 0 -o atlconf.txt -O 1 -A 26 -Si nof77 0 -V 480 -Fa ic '-fPIC' -Fa sm '-fPIC' -Fa dm '-fPIC' -Fa sk '-fPIC' -Fa dk '-fPIC' -Fa xc '-fPIC' -Fa gc '-fPIC' -Fa if '-fPIC' -b 64"'
mkdir src bin tune interfaces
cd src ; mkdir testing auxil blas lapack pthreads threads
cd src/blas ; \
mkdir f77reference reference gemv ger gemm kbmm \
level1 level2 level3 pklevel3
这是因为Ubuntu系统没有F77编译器,需要安装,安装命令如下:
sudo apt-get install fort77
或
sudo apt-get install gfortran # 安装f90
注:这个配置时间非常长,在Core i7 处理上,大概1个小时左右
make
make check # 执行一些检查过程,保证没有问题之后再进行安装
make time
make install
至此,atlas安装完成。不过我们要记录下编译过程中所用的fortran编译器类型,这个信息在下面安装numpy和scipy的时候要用。还是在目录 obj64/ 下,执行
fgrep "F77 =" Make.inc
可以看到
4、安装numpy
numpy和scipy的安装过程都要显式的指明所用fortran编译器的类型,而且要与前面编译atlas时一致(在本文中即:gfortran),这一点非常重要,否则很多功能都会出错。
首先配置numpy目录下的site.cfg文件,指明atlas库的位置:
下载地址: http://packages.ubuntu.com/search?keywords=python-numpy 或 https://pypi.python.org/pypi/numpy(推荐)
下载最新版本: numpy-1.8.1.tar.gz
tar -zxvf numpy-1.8.1.tar.gz
cd numpy-1.8.1
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的话,执行:
如果前面得到的Fortran编译器是g77的话,执行:
然后执行
python setup.py install
安装完成
5、安装scipy
与安装numpy类似,下载地址: https://pypi.python.org/pypi/scipy,下载最新版本:scipy-0.13.3.tar.gz
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
接下来配置安装numpy所需要的Fortran编译器类型:
如果前面得到的Fortran编译器是gfortran的话,执行:
如果前面得到的Fortran编译器是g77的话,执行:
然后执行
python setup.py install
安装完成
然后可以在python下执行相应的测试程序:
homer@ubuntu:~$ python Python 2.7.6 (default, Jan 25 2014, 12:41:48) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import nose >>> nose <module 'nose' from '/usr/local/lib/python2.7/site-packages/nose-1.3.1-py2.7.egg/nose/__init__.pyc'> >>> import numpy >>> numpy <module 'numpy' from '/usr/local/lib/python2.7/site-packages/numpy/__init__.pyc'> >>> import scipy >>> scipy <module 'scipy' from '/usr/local/lib/python2.7/site-packages/scipy/__init__.pyc'> >>> numpy.test('full') Running unit tests for numpy 等待。。。 >>> scipy.test('full') Running unit tests for scipy 等待。。。
到这里,整个安装过程结束。
新增安装 matplotlib
这个包需要依赖 numpy 和libpng
上面numpy已经安装
安装 libpng
1 下载http://libmng.com/pub/png/libpng.html
2 解压
3 安装
./configure --prefix=ZXX
make install
安装 matplotlib
2 安装
python setup.py build
python setup.py install
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2014-04-21 23:48:37
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!
厉害