在运行一个代码时出现了这样的一个问题:OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect resul
ts. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an
unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow the program to continue to execute, but that may cause cr
ashes or silently produce incorrect results. For more information, please see http://www.intel.com/software/products/support/.
意思是说:OMP:错误# 15:初始化libiomp5md . dll,但发现libiomp5md . dll已经初始化。
OMP:提示这意味着OpenMP运行时的多个副本已经链接到程序中。这是危险的,因为它可以降低性能或导致错误的结果。最好的做法是确保只有单个OpenMP运行时被链接到进程中,例如通过避免任何库中OpenMP运行时的静态链接。作为一种不安全的、不支持的、无证件的解决办法,可以设置环境变量KMP _ DUPLICATE _ LIB _ OK = TRUE,让程序继续执行,但这可能会导致崩溃或悄无声息地产生错误的结果。更多信息见http://www.intel.com/software/products/support/.
解决方法:
以前在pycharm里调试程序时可以直接通过在程序前添加这两个语句解决
import os
os.environ[“KMP_DUPLICATE_LIB_OK”]=“TRUE”
但在这种情况并不能解决问题。
报错的原因其实是anaconda的环境下存在多个libiomp5md.dll文件。所以直接去虚拟环境的路径下搜索这个文件,可以看到在环境里有多个dll文件
在某个env(例如名为work)下:删除…\Anaconda3\envs\work\Library\bin\libiomp5md.dll
记得对删除的文件和路径做个备份,以免后来会出错