web-dev-qa-db-ja.com

pipを介してSciPyをインストールしようとすると、RHELでATLASが検出されないのはなぜですか?

私はRHEL6、Python 2.6.6を使用しており、pipを介してSciPyをインストールしようとしています。

[user@server ~]$ Sudo pip install scipy
<snip>
atlas_blas_threads_info:
Setting PTATLAS=ATLAS
  libraries ptf77blas,ptcblas,atlas not found in ['/usr/local/lib64', '/usr/local/lib', '/usr/lib64/atlas']
  NOT AVAILABLE
<snip>

それでも、/ usr/lib64/atlasにファイルをリストすると、次のようになります。

[user@server ~]$ ls /usr/lib64/atlas
libcblas.so.3    libclapack.so.3.0  liblapack.so.3     libptcblas.so.3.0
libatlas.so.3    libcblas.so.3.0    libf77blas.so.3    liblapack.so.3.0  libptf77blas.so.3
libatlas.so.3.0  libclapack.so.3    libf77blas.so.3.0  libptcblas.so.3   libptf77blas.so.3.0

何か案は?

3
Erik Iveson

NumpyとScipyは奇妙な獣です。大きな問題は、とりわけ Fortran ABIの不一致 です。 インストールページ から:

Blas/lapack/atlasがg77で構築されている場合、numpyとscipyを構築するときにg77を使用する必要があります。

アトラスがgfortranで構築されている場合は、gfortranでnumpy/scipyを構築する必要があります。

お持ちのバージョンのAtlasでlddを実行します。

Libg2c.soが依存関係である場合、g77が使用されたため、ビルド時に次のオプションを渡す必要があります。

python setup.py build --fcompiler=gnu

または、libgfortran.soが依存関係である場合は、gfortranを使用して構築されているため、適切なFortranコンパイラーを設定する必要があります。

python setup.py build --fcompiler=gnu95

ちなみに、マシンが実行されているプロセッサにSIMDサポートが含まれている場合は、最適化されたバージョンのatlas(atlas3-sseなど)をインストールすることを強くお勧めします。

2
Kyle Kelley