3

IntelのMKLライブラリを使用してNumpyを構築しました(私にとっては難しいプロセスでした。1日かかりました!)。NumpyはLD_LIBRARY_PATH環境変数を使用してMKLライブラリにリンクする必要があります。または、少なくともこれが私のやり方です...したがって、.bashrcでexportを使用してパスを保存し、新しいコンソールを起動してpythonを実行すると、 Numpyはライブラリとともに正しくロードされます。

問題は、プログラムの開発にPydevで使用しているEclipseでは機能しないことです。Eclipseの設定のどこかにLD_LIBRARY_PATHを追加することはできますが、Scipyをインストールしようとすると問題が現実になります。ScipyのインストールスクリプトはNumpyをインポートする必要があり、LD_LIBRARY_PATHが正しく設定されている場合でも、インポートできないMKLライブラリでエラーが発生します。

$ sudo python setup.py install
Traceback (most recent call last):
  File "setup.py", line 208, in <module>
    setup_package()
  File "setup.py", line 145, in setup_package
    from numpy.distutils.core import setup
  File "/usr/local/lib/python2.7/dist-packages/numpy/__init__.py", line 137, in <module>
    import add_newdocs
  File "/usr/local/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 9, in <module>
    from numpy.lib import add_newdoc
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 4, in <module>
    from type_check import *
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/type_check.py", line 8, in <module>
    import numpy.core.numeric as _nx
  File "/usr/local/lib/python2.7/dist-packages/numpy/core/__init__.py", line 5, in <module>
    import multiarray
ImportError: libimf.so: cannot open shared object file: No such file or directory

libimf.soは、リンクする必要のあるMKLの共有ライブラリの1つです。Numpyのファイルを直接変更することを除けば__init__.py(それを行うためのよりクリーンな方法があるかもしれないので、私はむしろ避けます)、NumpyをMKLライブラリに永続的にリンクするために何をすべきかわかりません。

ご協力いただきありがとうございます!

4

1 に答える 1

7

Talonmies のコメントのおかげで、その方法を見つけました! ファイルを編集/etc/ld.so.confし、ライブラリへのパスを追加する必要があります。追加する必要があるパスを見つける方法は次のとおりです(非常に経験的です...):

インポートできないライブラリに関連する Numpy を使用してエラーが発生するたびに、このライブラリへのパスを次のように探します。

find /opt/intel -name library.so

たとえば、次のパスを取得します。 /opt/intel/path/to/library.so

次の行をファイルに追加します/etc/ld.so.conf

include /etc/ld.so.conf.d/*.conf

# Manually added lines
/opt/intel/path/to/library.so

そして、実行ldconfigしてライブラリを「リンク」します!

乾杯!そしてタロンミーありがとう!

于 2012-09-04T17:11:06.960 に答える