ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

如何将Linux中的永久MKL库链接到Numpy?

2019-07-29 12:51:23  阅读:341  来源: 互联网

标签:python numpy linux 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

libimf.so是我必须链接的MKL共享库之一.
除了直接修改Numpy的__init__.py文件(我宁愿避免因为可能有更简洁的方法)我不知道如何将Numpy永久链接到MKL库.

谢谢你的帮助!

解决方法:

感谢Talonmies的评论,我找到了做到这一点的方法!
必须编辑文件/etc/ld.so.conf并添加库的路径.
以下是我如何找到需要添加的路径(这是非常经验的……):

每当我使用与无法导入的库相关的Numpy出错时,我都会以这种方式寻找这个库的路径:

找/ 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来“链接”库!

干杯!谢谢Talonmies!

标签:python,numpy,linux,shared-libraries,intel-mkl
来源: https://codeday.me/bug/20190729/1571467.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有