Pie*_*reE 3 python linux numpy shared-libraries intel-mkl
我使用英特尔的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
Run Code Online (Sandbox Code Playgroud)
libimf.so是我必须链接的MKL共享库之一.除了直接修改__init__.pyNumpy 的文件(我宁愿避免因为可能有更简洁的方法)我不知道如何将Numpy永久链接到MKL库.
谢谢你的帮助!
感谢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
Run Code Online (Sandbox Code Playgroud)
然后运行ldconfig'链接'库!
干杯! 谢谢Talonmies!
| 归档时间: |
|
| 查看次数: |
4333 次 |
| 最近记录: |