我使用 Intel 的 MKL 库构建了 Numpy(对我来说这是一个艰难的过程,我花了一整天的时间!)。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 共享库之一。除了直接修改__init__.py
Numpy 的文件(我宁愿避免这样做,因为可能有更简洁的方法)之外,我不知道如何将 Numpy 永久链接到 MKL 库。
谢谢你的帮助!