scipyからAtlasを使用する


13

Ubuntu 12.04 64ビットをインストールしました。私はpythonとscipyで作業する必要があり、それらをインストールし、テストを実行するときに:

python -c "import scipy; scipy.test()"

私はメッセージを受け取ります:

ImportError:libatlas.so.3gf:共有オブジェクトファイルを開けません:そのようなファイルまたはディレクトリはありません

ただし、ディレクトリの下にlibatlasライブラリがインストールされてい/usr/lib/atlas-baseます。私はファイルを直接コピーできることを知っ/usr/libていますが、ライブラリを使用するためにscipyをどのようにセットアップできますusr/lib/atlas-baseか?


クロスポストしないでください。
カールソン

OK、今すぐ削除。
lmsasu

回答:


19

どこにも何もコピーする必要はありません。

アトラスライブラリをld検索する場所のリストに追加する必要があります。

ディレクトリに/etc/ld.so.conf.dファイルを追加できますatlas-lib.conf。このファイルは、ディレクトリを含める必要がlibatlas.so.3gfあります、/usr/lib/atlas-base

これを行うには、次を実行します

echo "/usr/lib/atlas-base" | sudo tee /etc/ld.so.conf.d/atlas-lib.conf

最後に実行

sudo ldconfig

ldこの新しいファイルを認識できるように更新します。

またはLD_LIBRARY_PATH、実行時にライブラリへのパスを含めるように設定できます。これは、SciPy内で使用できるはずです。


atlas-lib.confが助けになったかどうかはわかりませんが、LD_LIBRARY_PATHがうまくいきました。
-lmsasu

1
@lmsasuそのファイルを作成するときsudo ldconfig、アクティブにするために実行する必要があります
カールソン

ルートアクセスがない場合、最適なアプローチは何でしょうか。でそれを行うvirtualenv場合、その場合はどうしますか?
アルバート

1
@Albert Using virtualenvは完全に独立したテーマですが、ルートアクセスがなくてもLD_LIBRARY_PATH、回答に記載されている適切な方法で設定できます。
カールソン

この種のことは、numpy / scipyまたはlibatlas-devパッケージで処理する必要がありますか?システムnumpy 1.9.1が正常に動作する興味深い状況がありますが、virtualenvのnumpy 1.9.2はこの問題を示します。とにかく、あなたのソリューションはそれを修正しました。THX。
-drevicko

1

私にとっては、virtualenvを使用してexport LD_LIBRARY_PATH=/usr/lib/atlas-base/:${LD_LIBRARY_PATH}.bashrcファイルの最後で修正しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.