Python之scipy安装

由于程序中要使用scipy科学计算库,需要在自己的Ubuntu11.04中安装,scipy的官方网页中给出了Python2.x的安装方式,不过文档是2010年左右给出的,有些老;并且我想在Python3.x中安装。虽然有些人在网上说scipy不支持Python3.x,但是有人安装成功,可惜未见教程流出。我不得不费了九牛二虎之力,在尝试了变更安装目录与不同的Python3.x版本之后,终于摸索出了正确的安装方法。现在将其贴在博客上,以供后来者借鉴。


在Ubuntu11.04中为Python3.2.3安装scipy


1.安装合适的Python版本与必要的工具

可以参者Python安装篇来安装合适的Python;

在安装前,推荐安装如下工具:

sudo apt-get install build-essential python3-dev swig gfortran python3-nose

由于scipy依赖于很多其它第三方库,因此在正式安装scipy之前,需要将这些库安装完毕。


2. 安装ATLAS及LAPACK

在正式安装前,对于双核电脑,要先要禁掉CPU Throtting。由于我使用的是虚拟机,只有一个核,故而不需要此步,但仍然列出:

首先,
sudo cpufreq-selector -g performance
然后,
sudo cp /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor 
sudo cp /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor 
sudo cp /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor

完成上述步骤后,从netlib.org上下载LAPACK(3.4.2)及ATLAS(3.10),或者直接Google下载之。将ATLAS库解压到ATLAS文件夹(文件夹名就是ATLAS),然后进入该文件夹准备安装:

mkdir BUILD
cd BUILD
../configure -b 32 -Fa alg -fPIC --with-netlib-lapack-tarfile=<这里填入lapack.tgz的目录,我的是/home/xzq/Software/lapack-3.4.2.tgz> --prefix=/usr/local #这里我试过其它目录,但是比较麻烦~ 
make
cd lib
make shared
make ptshared
cd ..
sudo make install
注意,由于我的系统是32位的,所以在configure的参数中,使用‘-b’制定32位;如果是64位,需要将‘32’换成64位。

此外,这个步骤进行的比较长,在我的电脑上跑了大概1个小时。


3. 安装 UMFPACK with AMD, UFConfig and CHOLMOD

这个是scipy需要的一些库,最好安装。一种方法是直接下载4个库,分别安装;另外就是可以安装包含这些库的套件,也就是SuiteSparse,通过安装这个套件可以方便的完成这些库,当然也要安装一些不必要的库。下载最新的SuiteSparse(4.0.2),解压,进入该目录,比如解压成SuiteSpasre,然后:

进入SuiteSparse_config目录,打开SuiteSparse_config.mk,修改INSTALL_LIB和INSTALL_INCLUDE两个变量的值;如果你的安装路径默认是/usr/local,就不要修改
make
sudo make install #可选,我没进行这步

4. 安装numpy

numpy是另外一个科学计算库,scipy依赖于该科学计算库,故而需要安装。下载最新的numpy(1.6.2),解压之。进入其文件夹,修改site.cfg.example,另存为site.cfg,修改方法如下:

首先,将下列代码的注释符号去掉,或者直接添加,不要漏了DEFAULT
[DEFAULT]
library_dirs = /usr/local/lib
include_dirs = /usr/local/include

对于多核系统,需要去掉如下代码的注释
[blas_opt]
libraries = ptf77blas, ptcblas, atlas

[lapack_opt]
libraries = lapack, ptf77blas, ptcblas, atlas

[amd]
amd_libs = amd

[umfpack]
umfpack_libs = umfpack
对于单核系统(我的就是),需要去掉如下代码的注释
[blas_opt]
libraries = f77blas, cblas, atlas
[lapack_opt]
libraries = lapack, f77blas, cblas, atlas


完成上述步骤后,采用正常的安装方式即可:

python3.2 setup.py build
sudo python3.2 setup.py install --prefix=/usr/local
有一点需要注意,就是要注意你使用的Python版本,这个对于成功与否影响很大。

5. 安装scipy

经过繁琐的步骤,终于等来了最后的时刻,呵呵~。 下载最新的scipy(0.11.0),解压成文件夹,进入到该文件夹中,执行:

python3.2 setup.py build
sudo python3.2 setup.py install --prefix=/usr/local

scipy官网上的教程说,还要添加f2py和python-2.6/site-packages的搜索路径,由于前面我都是安装在/usr/local里的,这个就不用这么麻烦了。到此为之,安装完毕。当然,不要高兴太早,还要小小的试一试才行。

打开Terminal,输入:

$ python3.2.3
>>> import scipy.io as io
如果没有报错,说明可以使用了。

这个步骤真是繁琐啊,不过也是由于Python版本较多,支持力度自然跟不上了。对于Python2.x的支持,可是方便的多了,例如对于Python2.7.1,可以直接执行如下代码安装scipy、numpy和对于matplot的支持库:

sudo apt-get install python-numpy
sudo apt-get install python-scipy
sudo apt-get install python-matplotlib

当然,要使用最新的版本,总要付出点代价的。

你可能感兴趣的:(Linux学习,脚本语言学习,python,scipy,ubuntu,Ubuntu)