[解決済み] Python 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.
このサイトからどのtarをダウンロードする必要がありますか?
fortransを試しましたが、このエラーが出続けます(明らかに環境変数を設定した後です)。
どうすればいいですか?
その SciPyのウェブページ 以前は、ビルドとインストールの手順を提供していましたが、現在ではOSのバイナリ配布に依存しています。必要なライブラリのプリコンパイルパッケージがないOSでSciPy(およびNumPy)をビルドするには、Fortranライブラリをビルドして静的にリンクする必要があります。 BLAS と ラパック :
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の5つのコマンドのうち、1つだけを実行します。私が使っている gfortran 以外はコメントアウトしています。その後のLAPACKのインストールでは フォートラン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
2015年9月3日に更新しました。
本日、いくつかのコメントを検証しました(皆さん、ありがとうございました)。実行前
make lapacklib
を編集します。
make.inc
ファイルを作成し
-fPIC
オプションを
OPTS
と
NOOPT
の設定を変更します。64ビットアーキテクチャを使用している場合、または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でのみ動作確認をしています。
関連
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] Pythonで例外を手動で発生(スロー)させる
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PythonによるLeNetネットワークモデルの学習と予測
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。
-
[解決済み】fatal error: Python.h: そのようなファイルやディレクトリはありません
-
[解決済み] pipを使ったSciPyとNumPyのインストール