错误#15:初始化libiomp5md.dll,但发现已经初始化了libiomp5md.dll

7

操作系统: Windows10

我在anaconda中使用spyder(python3.8),运行代码后,出现以下错误:

[SpyderKernelApp] 警告 | 没有这样的comm:df7601e106dd11eba18accf9e4a3c0ef

OMP:错误#15:正在初始化libiomp5md.dll,但发现已经初始化了libiomp5md.dll。

OMP:提示 这意味着在程序中链接了多个OpenMP运行时。这很危险,因为它可能会降低性能或导致不正确的结果。最好的方法是确保只有单个OpenMP运行时链接到进程中,例如通过避免在任何库中静态链接OpenMP运行时。作为一种不安全、不受支持和未记录的解决方法,您可以设置环境变量 KMP_DUPLICATE_LIB_OK=TRUE 来允许程序继续执行,但这可能会导致崩溃或悄悄地产生不正确的结果。更多信息,请参见http://www.intel.com/software/products/support/

如何解决这个问题?


1
不确定这是否能够帮到你,但在我的情况下(我遇到了完全相同的错误),罪魁祸首是一个模块,更具体地说是import语句。我把它向下移动了几行,错误就消失了。显然,已经导入哪些函数很重要。 - Aenaon
6个回答

9
这个错误发生在Python解释器中存在多个"libiomp5.dll"文件时。我通过删除不在我使用的模块(PyTorch)中的所有文件版本来解决了这个问题。我想指出的是,如果你不知道自己在做什么,这可能会引起很多多进程问题,但我相信在StackOverflow上查找一下就能解决。
更多详情请访问:https://www.programmersought.com/article/53286415201/

9
我通过将NumPy升级到1.23.4版本解决了这个问题。
pip install numpy --upgrade

这对我来说很好:)

1
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community
我也试过了,太棒了!你真是太厉害了。这么简单的解决方案。 - bobt

9
import os
os.environ['KMP_DUPLICATE_LIB_OK']='True'

3

我不确定这个问题是否已经被解决并且你已经走过了这段路,但是我也遇到了同样的问题,通过使用 pip 重新安装一个包来解决它。

我的机器有一个AMD Ryzen 5 3400G CPU,并且我经常为大学研究进行机器学习和深度学习。昨天当我创建一个Tensorflow的anaconda环境时,我第一次遇到了这个问题,当时我已经有一个单独的PyTorch环境。我还将一个同事的代码合并到我的代码中,所以我认为Aenaon评论的是有效的,即导入的内容很重要。

无论如何,我的解决方案 - 在调查了哪些地方使用了mkl之后 - 就是重复地逐个pip uninstallpip install一个依赖于mkl的包,直到运行我的程序时问题消失。在这么做了第一次卸载了numpy之后,问题神奇地解决了。我认为这只是巧合,但是我的目标程序现在可以正常工作没有任何问题。


在Windows 10上,我使用Python 3.6和Conda环境,但几乎所有的包都是使用pip安装的。对于我来说,使用pip卸载/安装numpy/scipy/matplotlib解决了问题。 - odedbd

-1

我通过将导入HELPERS的位置后移并添加导入OS来解决了这个问题。

enter image description here


1
请勿发布源代码的图像。这对于想尝试此答案的人来说很难采用。请将其作为代码块发布。 - Azhar Khan

-2

遇到了相同的问题:

  • Anaconda Navigator 2.3.2
  • Spyder 版本:5.3.3(conda)
  • Python 版本:3.9.15 64 位
  • Qt 版本:5.15.2
  • PyQt5 版本:5.15.7
  • 操作系统:Windows 10

我在以下目录找到了 libiomp5md.dll

  • ..\anaconda3\envs\My_Env\Library\bin
  • ..\anaconda3\pkgs\tensorflow-base-2.9.1-mkl_py39h6a7f48e_1\Lib\site-packages\tensorflow\python

我将 ..\envs\My_Env\Library\bin 中的文件重命名为 libiomp5_save.dll,问题就解决了。

不清楚是否会有任何副作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接