[英]Intel MKL Error preventing me importing Scipy in Python
我正在尝试使用 scipy.integrate.solve_ivp,但是任何需要 scipy 的导入语句都会出现问题,包括以下简单的内容:
import scipy
当我运行它时,我收到以下错误:
INTEL MKL ERROR:
dlopen(/Users/user/.conda/envs/nephron/lib/libmkl_intel_thread.dylib, 9):
Library not loaded: @rpath/libiomp5.dylib
Referenced from: /Users/user/.conda/envs/nephron/lib/libmkl_intel_thread.dylib
Reason: no suitable image found. Did find:
/Users/user/.conda/envs/nephron/bin/../lib/libiomp5.dylib: file too short.
Intel MKL FATAL ERROR: Cannot load libmkl_intel_thread.dylib.
我在运行 macOS High Sierra 10.13.6 的 MacBook Air 上使用 Pycharm 社区 IDE(版本 2019.2.3)和 Anaconda 插件(但即使我只在终端中执行脚本也会发生这种情况)和 Python 版本 3.7.5。 我的包管理器是 conda 4.7.12。 编辑:我安装了 scipy 1.3.1 版。
简短搜索后,我无法在 Stack 或 Google 上找到此错误的解释,我尝试查看它是否缺少我的软件包安装,但我查看了 Python 在 Pycharm 中使用的搜索路径(如通过在 Pycharm 的终端中运行python -V
进行测试,如果我只是通过我的普通终端运行它,确实会发生这种情况),并且确实 scipy 是沿着搜索路径之一安装的。
编辑:
我尝试创建一个新环境,删除现有环境,使用conda create -n nephron scipy
,这并没有解决问题。
感谢另一位用户添加相关标签。
其他一些其他英特尔软件包(例如 numpy)似乎也会出现同样的问题。
我在几个月前安装了 scipy 后安装了 seaborn 时遇到了同样的问题。 Scipy 安装了 mkl=2019 包,最新版本的 seaborn 需要 mkl=2020。
我所做的只是删除了 scipy、seaborn 和 mkl=2019,然后我从 conda 重新安装了它们。
根本原因可能是NumPy,SciPy 无法加载正确的 MKL 或 Intel OpenMP 运行时库。 这几乎总是由以下两件事之一引起的:
带有 NumPy 或 SciPy 的环境尚未激活。
另一家软件供应商已将 MKL 或 Intel OpenMP (libiomp5md.dll) 文件安装到 C:\\Windows\\System32 文件夹中。 这些文件在 Anaconda 之前加载,并且它们不兼容。
尝试设置环境或预加载dll等。
这里是 Linux
export LD_PRELOAD=/opt/intel/mkl/lib/intel64/libmkl_def.so:/opt/intel/mkl/lib/intel64/libmkl_avx2.so:/opt/intel/mkl/lib/intel64/libmkl_core.so:/opt/intel/mkl/lib/intel64/libmkl_intel_lp64.so:/opt/intel/mkl/lib/intel64/libmkl_intel_thread.so:/opt/intel/lib/intel64_lin/libiomp5.so
在 windows 中,通过 mkl/bin/mklvars.bat intel64 设置 env,然后在相同的环境中运行你的 python
或在 python 中手动添加库 sys.path.append(" your path to the library") 或Pyinstaller numpy "Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll" ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.