通过 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_dirsinclude_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的主要内容,如果未能解决你的问题,请参考以下文章

Python3 Win下安装 scipy

安装 scipy 时找不到库 mkl_rt、openblas、lapack - 如何更改库的标志

在 centos 上安装 scipy 模块

Windows下Python安装numpy+mkl,Scipy和statsmodels

无法在 ubuntu 12.04 上使用 mkl 构建 scipy

SciPy 无法通过 pip 安装