Веб- сторінка SciPy використовувалась для надання інструкцій по збірці та встановленню, але там інструкції покладаються на бінарні дистрибутиви ОС. Щоб побудувати SciPy (та NumPy) на операційних системах без попередньо складених пакетів необхідних бібліотек, ви повинні побудувати та статично зв’язатись з бібліотеками Fortran BLAS та 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
Виконайте лише одну з п’яти команд g77 / gfortran / ifort. Я все прокоментував, але той gfortran, який я використовую. Подальша установка LAPACK вимагає компілятора Fortran 90 , і оскільки обидві установки повинні використовувати один компілятор Fortran, g77 не повинен використовуватися для BLAS.
Далі вам потрібно буде встановити матеріали LAPACK. Інструкції веб-сторінки SciPy мені також допомогли тут, але мені довелося змінити їх відповідно до мого середовища:
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
Оновлення 3 вересня 2015 року. Підтверджено сьогодні деякі коментарі (спасибі всім): Перед запуском make lapacklib
відредагуйте make.inc
файл та додайте -fPIC
параметр OPTS
та NOOPT
параметри. Якщо ви маєте 64-бітну архітектуру або хочете компілювати її, також додайте -m64
. Важливо, щоб BLAS і LAPACK були складені з цими параметрами, встановленими на однакові значення. Якщо ви забудете, -fPIC
SciPy насправді дасть вам помилку щодо відсутніх символів і рекомендує цей перемикач. Конкретний розділ make.inc
виглядає так у моїй установці:
FORTRAN = gfortran
OPTS = -O2 -frecursive -fPIC -m64
DRVOPTS = $(OPTS)
NOOPT = -O0 -frecursive -fPIC -m64
LOADER = gfortran
На старих машинах (наприклад, RedHat 5) gfortran може бути встановлений у більш старій версії (наприклад, 4.1.2) і не розуміє варіант -frecursive
. make.inc
У таких випадках просто видаліть його з файлу.
Тестова ціль лапака Makefile не вдається встановити, оскільки він не може знайти бібліотеки blas. Якщо ви ретельно ви можете тимчасово перенести бібліотеку Blas у вказане місце, щоб перевірити лапак. Я лінива людина, тому я довіряю розробникам, щоб він працював і перевіряв лише в SciPy.