파이썬 SciPy는 BLAS가 필요합니까?
numpy.distutils.system_info.BlasNotFoundError:
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.
이 사이트에서 어떤 타르를 다운로드해야 합니까?
fortrans를 시도해봤는데 (환경 변수를 분명히 설정한 후) 계속 이 오류가 발생합니다.
BLAS와 LAPACK을 구축하는 번거로움 없이 패키지 버전이 아닌 최신 버전의 SciPy를 사용해야 하는 경우 아래 절차를 따를 수 있습니다.
저장소에서 선형 대수 라이브러리 설치(Ubuntu용),
sudo apt-get install gfortran libopenblas-dev liblapack-dev
그런 다음 SciPy 소스를 다운로드한 후 SciPy를 설치합니다. python setup.py install
또는
pip install scipy
경우에 따라서는
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 명령 중 하나만 실행합니다.저는 제가 사용하는 포트란을 제외하고는 모두 코멘트를 달았습니다.이후의 LAPACK 설치에는 Fortran 90 컴파일러가 필요하며, 두 설치 모두 동일한 Fortran 컴파일러를 사용해야 하므로 BLAS에 g77을 사용하면 안 됩니다.
다음으로, 당신은 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
9월 : 일부 ( : 2015년 9월 3일자 : 2015년 9월 3일자 : 실행 전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
시스템 5 버전 4되어 있으며 인 gfortran(예: RedHat 5)을 하지 못할 수 .-frecursive
에서 제거하기만 하면 됩니다.make.inc
이 경우에는 파일을 작성합니다.
Makefile의 lapack 테스트 대상이 blas 라이브러리를 찾을 수 없기 때문에 설정에서 실패합니다.완전한 경우 일시적으로 blas 라이브러리를 지정된 위치로 이동하여 랩팩을 테스트할 수 있습니다.저는 게으른 사람이기 때문에 개발자들이 SciPy에서만 작동하고 검증할 수 있다고 믿습니다.
Fedora에서 이 기능은 다음과
yum install lapack lapack-devel blas blas-devel
pip install numpy
pip install scipy
'blas'와 'lapack' 외에 'lapack-devel'과 'blas-devel'을 설치해야 합니다. 그렇지 않으면 언급한 오류나 "numpy.distutils"가 발생합니다.system_info.LapackNotFoundError" 오류입니다.
Ubuntu에서의 설치에 대해 말씀하시는 것 같습니다.그냥 사용:
apt-get install python-numpy python-scipy
그것은 BLAS 라이브러리 컴파일도 처리해야 합니다.그렇지 않으면, BLAS 라이브러리를 컴파일하는 것은 매우 어렵습니다.
Windows 사용자를 위해 Chris의 멋진 이진 패키지가 있습니다(경고: 191MB로 다운로드가 상당히 큽니다).
'cfi'가 제공하는 지침을 따르는 것이 저에게 도움이 되지만, 필요할 수도 있는 몇 가지 누락된 부분이 있습니다.
압축을 푼 후에는 lapack-X-Y(일부 버전 번호)라고 할 수 있으므로 이름을 LAPACK으로 변경할 수 있습니다.
cd ~/src
mv lapack-[tab] LAPACK
해당 디렉토리에서 다음 작업을 수행해야 할 수 있습니다.
cd ~/src/LAPACK
cp lapack_LINUX.a libflapack.a
사용해 보십시오.
sudo apt-get install python3-scipy
언급URL : https://stackoverflow.com/questions/7496547/does-python-scipy-need-blas
'source' 카테고리의 다른 글
Firebase 저장소에 파일이 있는지 확인하는 방법은 무엇입니까? (0) | 2023.06.30 |
---|---|
루비에서 선행 0을 출력하려면 어떻게 해야 합니까? (0) | 2023.06.25 |
특정 값을 포함하지 않는 배열을 가진 문서 찾기 (0) | 2023.06.25 |
MongoDB(MongoDB+Node js 콤보)에 삽입하기 전에 사용자 입력을 검사해야 합니까? (0) | 2023.06.25 |
스프링 부팅 시 최대 절전 모드를 사용하여 자동 UUID를 생성하는 방법 (0) | 2023.06.25 |