各個安裝包版本:
scipy-0.11.0
numpy-1.6.2
nose-1.2.1
lapack-3.4.2
##atlas-3.10.0 (http://pkgs.fedoraproject.org/repo/pkgs/atlas/)
依賴關系:scipy的安裝需要依賴於numpy、lapack、atlas(后兩者都是線性代數工具包,不清楚的自行google之。。。),而numpy和sci的測試程序的運行又依賴於nose,因此,整個安裝過程必須要按順序執行的,否則是無法執行下去的。
sudo yum -y install gcc gcc-c++ numpy python-devel scipy sudo pip install nose sudo pip install numpy
主要是在安裝scipy時問題多多:
1. Blas(http://www.netlib.org /blas/) libraries not found.
Directories to search for the libraries can be specified in the
numpy/distutils/site.cfg file (section [blas])or by setting
the BLAS environment variable.
找不到blas
解決: yum install blas-devel
2.
竟然不出現BLAS的錯誤了
出現了LAPACK的錯誤
解決: yum install lapack-devel
然后, cd scipy-0.13.3 && sudo python setup.py install
順利編譯了
之后也順利安裝了
看網上說 安裝numpy前要安裝gcc-gfortran、blas-devel、lapack-devel
沒有遇到gcc-gfortran的錯誤,可能是之前機器上裝了吧
最后是 matplotlib安裝....
所需依賴numpy, libpng 1.2 (or later), `freetype` 1.4 (or later), `dateutil` 1.1 or later, `pyparsing`
sudo -E /usr/local/bin/pip3 install python-dateutil sudo -E /usr/local/bin/pip3 install pyparsing wget http://download.savannah.gnu.org/releases/freetype/freetype-2.5.3.tar.gz wget https://downloads.sourceforge.net/project/matplotlib/matplotlib/matplotlib-1.3.1/matplotlib-1.3.1.tar.gz libpng-1.2.51.tar.gz 按照附帶的安裝文件說明安裝即可.
編譯安裝是沒什么問題
可是問題在安裝后,import也沒問題
可是就是show()方法圖像出不來
一直沒反應
一直對着setup.py目錄下的INSTALL文件的require那一段檢查軟件的版本
都沒問題
網上也說matplotlib的會自動檢查后端環境
CentOS下也已經有了Tkinter
后來 用
yum install *-tk* 將兩個以-tk結尾的軟件裝上
yum install *gtk2-* 將幾個已gtk2開頭的軟件全裝上
重新編譯安裝一次matplotlib
show()就可以出現圖像來了
可能那幾個軟件只要裝某個就可以了,多裝了一些
不過總算是把numpy、scipy和matplotlib都搞好了
附帶:
Linux 安裝 cblas, lapack, lapacke:
1.確保機器上安裝了gfortran編譯器,如果沒有安裝的話,可以使用sudo apt-get install gfortran
2.下載blas, cblas, lapack 源代碼, 這些源碼都可以在 http://www.netlib.org 上找到,下載並解壓。這里提供我安裝時的下載鏈接 http://www.netlib.org/blas/blas.tgz http://www.netlib.org/blas/blast-forum/cblas.tgz http://www.netlib.org/lapack/lapack-3.4.2.tgz,解壓之后會有三個文件夾, BLAS, CBLAS, lapack-3.4.2
3.這里就是具體的編譯步驟
1)編譯blas, 進入BLAS文件夾,執行以下幾條命令
1
2
3
|
gfortran -c -O3 *.f
# 編譯所有的 .f 文件,生成 .o文件
ar rv libblas.a *.o
# 鏈接所有的 .o文件,生成 .a 文件
su
cp
libblas.a
/usr/local/lib
# 將庫文件復制到系統庫目錄
|
2)編譯cblas, 進入CBLAS文件夾,首先根據你自己的計算機平台,將目錄下某個 Makefile.XXX 復制為 Makefile.in , XXX表示計算機的平台,如果是Linux,那么就將Makefile.LINUX 復制為 Makefile.in,然后執行以下命令
1
2
3
|
cp
..
/BLAS/libblas
.a testing
# 將上一步編譯成功的 libblas.a 復制到 CBLAS目錄下的testing子目錄
make
# 編譯所有的目錄
sudo
cp
lib
/cblas_LINUX
.a
/usr/local/lib/libcblas
.a
# 將庫文件復制到系統庫目錄下
|
3)編譯 lapack以及lapacke,這一步比較麻煩,首先當然是進入lapack-3.4.2文件夾,然后根據平台的特點,將INSTALL目錄下對應的make.inc.XXX 復制一份到 lapack-3.4.2目錄下,並命名為make.inc, 這里我復制的是 INSTALL/make.inc.gfortran,因為我這里用的是gfortran編譯器。
修改lapack-3.4.2/Makefile, 因為lapack以來於blas庫,所以需要做如下修改
#lib: lapacklib tmglib
lib: blaslib variants lapacklig tmglib
然后執行以下命令:
1
2
3
4
5
6
|
make
# 編譯所有的lapack文件
cd
lapacke
# 進入lapacke 文件夾,這個文件夾包含lapack的C語言接口文件
make
# 編譯lapacke
cp
include/*.h
/usr/local/include
#將lapacke的頭文件復制到系統頭文件目錄
cd
..
#返回到 lapack-3.4.2 目錄
cp
*.a
/usr/local/lib
# 將生成的所有庫文件復制到系統庫目錄
|
這里的頭文件包括: lapacke.h, lapacke_config.h, lapacke_mangling.h, lapacke_mangling_with_flags.h lapacke_utils.h
生成的庫文件包括:liblapack.a, liblapacke.a, librefblas.a, libtmglib.a
至此cblas和lapack就成功安裝到你的電腦上了。
測試:
可以到 http://www.netlib.org/lapack/lapacke.html 找測試代碼,這里lapacke的官方文檔,比如如下代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#include <stdio.h>
#include <lapacke.h>
int
main (
int
argc,
const
char
* argv[])
{
double
a[5*3] = {1,2,3,4,5,1,3,5,2,4,1,4,2,5,3};
double
b[5*2] = {-10,12,14,16,18,-3,14,12,16,16};
lapack_int info,m,n,lda,ldb,nrhs;
int
i,j;
m = 5;
n = 3;
nrhs = 2;
lda = 5;
ldb = 5;
info = LAPACKE_dgels(LAPACK_COL_MAJOR,
'N'
,m,n,nrhs,a,lda,b,ldb);
for
(i=0;i<n;i++)
{
for
(j=0;j<nrhs;j++)
{
printf
(
"%lf "
,b[i+ldb*j]);
}
printf
(
"\n"
);
}
return
(info);
}
|
將上訴代碼保存為test.c,編譯時,別忘了使用gfortran,此外,還需要連接用到的庫,編譯上面的代碼,應使用如下命令:
1
|
gfortran
test
.c -llapacke -llapack -lrefblas
|
如果能正常編譯,即表示安裝成功。如果要了解這段代碼的具體含義,可以到 http://www.netlib.org/lapack/lapacke.html 查看