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.
このサイトからどのtarをダウンロードする必要がありますか?
私はfortransを試しましたが、このエラーが表示され続けます(明らかに環境変数を設定した後)。
SciPy webpage はビルドとインストールの指示を提供するために使用されていましたが、現在の指示は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コマンドのうち1つだけを実行します。私はすべてコメントアウトしましたが、私が使用するgfortranはコメントアウトしました。後続のLAPACKインストールには Fortran 9 コンパイラーが必要です。両方のインストールで同じFortranコンパイラーを使用する必要があるため、g77はBLASに使用しないでください。
次に、LAPACKをインストールする必要があります。 SciPy Webページの指示もここで役立ちましたが、環境に合わせて変更する必要がありました。
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
2015年9月3日に更新:今日いくつかのコメントを検証しました(すべてに感謝):make lapacklib
を実行する前に、make.inc
ファイルを編集し、OPTS
およびNOOPT
設定に-fPIC
オプションを追加します。 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でのみ動作して検証することを信頼しています。
パッケージ化されたバージョンではなく、最新バージョンのSciPyを使用する必要があり、BLASとLAPACKを構築する手間をかけずに、以下の手順に従うことができます。
リポジトリから線形代数ライブラリをインストールします(Ubuntuの場合)、
Sudo apt-get install gfortran libopenblas-dev liblapack-dev
次に、SciPyをインストールします(SciPyソースをダウンロードした後):python setup.py install
または
pip install 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によるNiceバイナリパッケージがあります(警告:かなり大きなダウンロード、191MB):
'cfi'によって与えられた指示に従うことは私にとってはうまくいきますが、あなたが必要とするかもしれないいくつかの断片が残っていますが:
1)解凍後のlapackディレクトリはlapack-X-Y(バージョン番号)と呼ばれる場合があるため、LAPACKに名前を変更できます。
cd ~/src
mv lapack-[tab] LAPACK
2)そのディレクトリで、次の操作が必要になる場合があります。
cd ~/src/LAPACK
cp lapack_LINUX.a libflapack.a