Halaman web SciPy digunakan untuk memberikan instruksi pembangunan dan instalasi, tetapi instruksi di sana sekarang bergantung pada distribusi biner OS. Untuk membangun SciPy (dan NumPy) pada sistem operasi tanpa paket yang telah dikompilasi dari pustaka yang diperlukan, Anda harus membuat dan kemudian secara statis menautkan ke pustaka Fortran BLAS dan LAPACK :
mkdir -p ~/src/
cd ~/src/
wget http://www.netlib.org/blas/blas.tgz
tar xzf blas.tgz
cd BLAS-*
## NOTE: The selected Fortran compiler must be consistent for BLAS, LAPACK, NumPy, and SciPy.
## For GNU compiler on 32-bit systems:
#g77 -O2 -fno-second-underscore -c *.f # with g77
#gfortran -O2 -std=legacy -fno-second-underscore -c *.f # with gfortran
## OR for GNU compiler on 64-bit systems:
#g77 -O3 -m64 -fno-second-underscore -fPIC -c *.f # with g77
gfortran -O3 -std=legacy -m64 -fno-second-underscore -fPIC -c *.f # with gfortran
## OR for Intel compiler:
#ifort -FI -w90 -w95 -cm -O3 -unroll -c *.f
# Continue below irrespective of compiler:
ar r libfblas.a *.o
ranlib libfblas.a
rm -rf *.o
export BLAS=~/src/BLAS-*/libfblas.a
Jalankan hanya satu dari lima perintah g77 / gfortran / ifort. Saya sudah berkomentar semua, tapi gfortran yang saya gunakan. Instalasi LAPACK selanjutnya membutuhkan kompiler Fortran 90 , dan karena kedua pemasangan harus menggunakan kompiler Fortran yang sama, G77 tidak boleh digunakan untuk BLAS.
Selanjutnya, Anda harus menginstal barang-barang LAPACK. Petunjuk halaman web SciPy juga membantu saya di sini, tetapi saya harus memodifikasinya agar sesuai dengan lingkungan saya:
mkdir -p ~/src
cd ~/src/
wget http://www.netlib.org/lapack/lapack.tgz
tar xzf lapack.tgz
cd lapack-*/
cp INSTALL/make.inc.gfortran make.inc # On Linux with lapack-3.2.1 or newer
make lapacklib
make clean
export LAPACK=~/src/lapack-*/liblapack.a
Pembaruan pada 3-Sep-2015: Terverifikasi beberapa komentar hari ini (terima kasih untuk semua): Sebelum menjalankan make lapacklib
edit make.inc
file dan tambahkan -fPIC
opsi ke OPTS
dan NOOPT
pengaturan. Jika Anda menggunakan arsitektur 64bit atau ingin mengompilasinya, tambahkan juga -m64
. Adalah penting bahwa BLAS dan LAPACK dikompilasi dengan opsi-opsi ini diatur ke nilai yang sama. Jika Anda lupa -fPIC
SciPy benar-benar akan memberi Anda kesalahan tentang simbol yang hilang dan akan merekomendasikan switch ini. Bagian spesifik make.inc
tampilannya seperti ini di pengaturan saya:
FORTRAN = gfortran
OPTS = -O2 -frecursive -fPIC -m64
DRVOPTS = $(OPTS)
NOOPT = -O0 -frecursive -fPIC -m64
LOADER = gfortran
Pada mesin lama (mis. RedHat 5), gfortran mungkin diinstal dalam versi yang lebih lama (misal 4.1.2) dan tidak mengerti opsi -frecursive
. Cukup hapus dari make.inc
file dalam kasus seperti itu.
Target uji lapack dari Makefile gagal dalam pengaturan saya karena tidak dapat menemukan perpustakaan blas. Jika Anda teliti, Anda dapat memindahkan pustaka blas untuk sementara waktu ke lokasi yang ditentukan untuk menguji lapack. Saya orang yang malas, jadi saya percaya para devs membuatnya bekerja dan memverifikasi hanya di SciPy.