centos6.4 下安裝numpy、scipy、matplotlib

各個安裝包版本:html

scipy-0.11.0python

numpy-1.6.2c++

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,所以,整個安裝過程必需要按順序執行的,不然是沒法執行下去的。ui

sudo yum -y install gcc gcc-c++ numpy python-devel scipy

sudo pip install nose

sudo pip install numpy

主要是在安裝scipy時問題多多:google

1. Blas(http://www.netlib.org /blas/) libraries not found.spa

Directories to search for the libraries can be specified in the.net

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.下載blascblaslapack 源代碼, 這些源碼均可以在 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,解壓以後會有三個文件夾, BLASCBLASlapack-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 查看

相關文章
相關標籤/搜索