通过 PIP 使用 MKL 安装 Scipy
Posted
技术标签:
【中文标题】通过 PIP 使用 MKL 安装 Scipy【英文标题】:Install Scipy with MKL through PIP 【发布时间】:2014-03-26 07:57:30 【问题描述】:我正在使用 PIP 安装带有 MKL 的 Scipy 以加速性能。我的操作系统是 Ubuntu 64 位。使用来自question 的解决方案,我创建了一个文件 .numpy-site.cfg
[mkl]
library_dirs=/opt/intel/composer_xe_2013_sp1/mkl/lib/intel64/
include_dirs=/opt/intel/mkl/include/
mkl_libs=mkl_intel_lp64,mkl_intel_thread,mkl_core,mkl_rt
lapack_libs=
这个文件帮助我成功地使用 MKL 安装 Numpy。但是,使用上面相同的文件,安装Scipy会提示错误
ImportError: libmkl_rt.so: cannot open shared object file: No such file or directory
我也用
export LD_LIBRARY_PATH=/opt/intel/composer_xe_2013_sp1/mkl/lib/intel64
但问题还是一样。
有人知道如何解决这个问题吗?我不想手动安装 Scipy,所以有人给我一些提示来修复它。
【问题讨论】:
你试过export LD_LIBRARY_PATH=/opt/intel/composer_xe_2013_sp1/mkl/lib/intel64:$LD_LIBRARY_PATH
吗?
我以前试过这个选项。但是,错误仍然存在。我不知道如何修复它。
您必须使用library_dirs
和include_dirs
检查这些库是否实际存在于指定位置。可能有很多原因导致情况并非如此。最明显的是您安装了较旧/较新的 Intel Studio 版本,或者您将编译器和库安装到了非默认位置。
【参考方案1】:
问这个问题已经过去了 2 年。
现在有用于 linux 的 numpy/scipy ***,它们使用为 avx2 编译的 openblas,因此您无需构建包即可获得更好的性能。您可能需要升级 pip 才能安装***:
pip install --upgrade pip
pip install numpy scipy
如果你想要 MKL,那么你可以安装 Anaconda 或 Intel Distribution for Python。他们使用 conda 而不是 pip 来管理包,但它们是免费的,并且分发包含所有依赖项的包,包括 MKL。
【讨论】:
OP 正在使用的 Ubuntu 没有***。最好的选择是 Anaconda。【参考方案2】:由于没有回答实际问题本身,让我试一试......
我认为这里的问题基本上是正在使用的 BLAS/LAPACK 库分布在多个位置,而 numpy 不能很好地处理这个问题。
我们已经在 EasyBuild 中修复了这个问题,我们在英特尔 MKL 上构建 numpy/scipy 已经有一段时间了,使用这个补丁:https://github.com/hpcugent/easybuild-easyconfigs/blob/master/easybuild/easyconfigs/n/numpy/numpy-1.8.1-mkl.patch
【讨论】:
【参考方案3】:过去几周我一直面临这个问题: Windows 10 64 位 Python 3.5.2
我的解决方法:
第一:pip install wheel
下一步:从 Gholke 的仓库下载 Numpy 和 Scipy Numpy 和 SciPy
然后:
pip install numpy_package.whl
pip install scipy_package.whl
【讨论】:
【参考方案4】:如果您在安装或使用特定版本时遇到问题,请先卸载然后安装
第 1 步:
pip uninstall -v numpy
第二步:下载wheel文件并安装
pip install -U numpy-1.13.0+mkl-cp36-cp36m-win_amd64.whl
在此示例中,车轮文件名为“numpy-1.13.0+mkl-cp36-cp36m-win_amd64.whl "
【讨论】:
请告诉我你做了什么?您是否按照我建议的步骤进行操作? 对不起。这么长的时间。我不再使用此服务器,因此无法应用您的解决方案。 OP 明确表示 Ubuntu。【参考方案5】:我有 Win10 64Bit 和 Python 3.6.2 我已经通过 http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy 安装了 scipy
我遵循以下步骤:
第 1 步:如果您有任何以前版本的 numpy,请卸载, pip 卸载 numpy 第 2 步:下载 numpy‑1.13.1+mkl‑cp36‑cp36m‑win_amd64.whl MKL(数学内核库)来自下面的链接, http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy 步骤 3:将下载的文件复制到另一个位置并启动命令 从该位置提示。 第 4 步:运行此命令, pip install -U numpy-1.13.1+mkl-cp36-cp36m-win_amd64.whl 第 5 步:现在从以下位置下载 scipy 库, http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy 第 6 步:将下载的文件复制到与 numpy 相同的位置 复制。 第 7 步:在 CMD 提示符下运行此 cmd, pip install scipy-0.19.1-cp36-cp36m-win_amd64.whl完成!
【讨论】:
适用于 Windows。老兄。 非常感谢好友,出色的回答和出色的代表。【参考方案6】:对我来说,MKL 是由conda install scipy
提供的 Scipy 库
@rscohn2 解决方案给了我使用包的提示。
作为参考,我的环境包括 Ubuntu、Anaconda、Python 3.6、Scipy 1.1 和 MKL 2018.0。
【讨论】:
【参考方案7】:英特尔一直在向 PyPI 发布 Numpy、Scipy 和 Scikit-learn 等软件包的***。这些***是在链接英特尔 MKL 时构建的,并包含各种优化。
如果您想使用英特尔 MKL 构建 Scipy:
#Remove existing Numpy and/or Scipy:
pip uninstall numpy scipy -y
#Install scipy built with Intel MKL:
pip install intel-scipy
More information available here
【讨论】:
自 2019 年 3 月起,这不适用于 Python 3.7。 Pip 在存储库中找不到“intel-scipy”。 我有 python 3.6.9 并且它有效。您可能还需要获取 llibpython。apt install libpython3.6
。我使用numpy.show_config()
验证了我在 python 中的安装以上是关于通过 PIP 使用 MKL 安装 Scipy的主要内容,如果未能解决你的问题,请参考以下文章
安装 scipy 时找不到库 mkl_rt、openblas、lapack - 如何更改库的标志
Windows下Python安装numpy+mkl,Scipy和statsmodels