英特尔MKL错误导致我无法在Python中导入Scipy

我正在尝试使用scipy.integrate.solve_ivp,但是任何需要scipy的import语句都会出现问题,包括简单的内容:

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.

我正在将Pycharm社区IDE(2019.2.3版)与Anaconda插件一起使用(即使我仅在终端中执行脚本也是如此),并且在运行macOS High Sierra 10.13的MacBook Air上使用Python 3.7.5版.6。我的程序包管理器是conda 4.7.12。编辑:我已安装scipy版本1.3.1。

经过短暂搜索后,我无法在Stack或Google上找到此错误的解释,我尝试查看它是否丢失了我的软件包安装,但我查看了Python中使用的搜索路径Pycharm(通过在Pycharm的终端中运行python -V进行的测试,实际上是通过我的普通终端运行它而发生的),实际上scipy是沿着搜索路径之一安装的。

编辑:

我尝试创建一个新环境,并使用conda create -n nephron scipy删除了现有环境,但这并不能解决问题。

感谢其他用户添加相关标签。

其他一些intel软件包,例如numpy,似乎也出现了相同的问题。

l5600666 回答:英特尔MKL错误导致我无法在Python中导入Scipy

我在安装几个月前的scipy后安装seaborn时遇到了同样的问题。 Scipy安装了mkl = 2019软件包和seaborn要求的最新版本mkl = 2020。

我所做的只是删除scipy,seaborn和mkl = 2019,然后从conda重新安装它们。

,

根本原因可能是NumPy,SciPy is unable to load the correct MKL or Intel OpenMP runtime libraries。这几乎总是由以下两种原因之一引起的:

  1. 具有NumPy或SciPy的环境尚未激活。

  2. 另一个软件供应商已将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设置环境,然后在同一环境中运行python

或在python中手动添加库sys.path.append(“您的库路径”)或Pyinstaller numpy "Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll" ...

本文链接:https://www.f2er.com/3040863.html

大家都在问