SciPy는 웹 페이지 구축 및 설치 지침을 제공하는 데 사용하지만,이 지침은 이제 OS 바이너리 배포판에 의존하고 있습니다. 필수 라이브러리의 사전 컴파일 된 패키지없이 운영 체제에서 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
5 개의 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 - 9 월 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의 lapack 테스트 대상이 blas 라이브러리를 찾을 수 없기 때문에 설정에서 실패합니다. 철저한 경우 blas 라이브러리를 지정된 위치로 일시적으로 이동하여 lapack을 테스트 할 수 있습니다. 나는 게으른 사람이므로 개발자가 SciPy에서만 작동하고 확인하도록 믿습니다.