在一次Pycharm下debug时,报错:
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 results. 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 crashes or silently produce incorrect results. For more information, please see http://www.intel.com/software/products/support/.
Process finished with exit code 3
网上查找相关解决方案,一般采用以下方式:
import os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE
但是这种方式治表不治里,在下一个项目运行中还有可能出行同样的问题。 搜索后看到web1和web2提供了一种根本性解决问题的方法。
本问题出现主要是因为torch包中包含了名为libiomp5md.dll的文件,与Anaconda环境中的同一个文件出现了某种冲突,所以需要删除一个。
在Anaconda文件夹下搜索,如下图,删除Anaconda包中libiomp5md.dll这个文件,即下图所选定的那个。
![](https://i-blog.csdnimg.cn/blog_migrate/114464eeb60698139ad7a5e0e5d004b9.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/c4cfc2000d8c8647bff48a927988fe98.jpeg)
但如果是在某个python环境下,则需要删除的是该环境下的对应文件。
也就是:
- 如果在Anaconda的base环境下:删除..\Anaconda3\Library\bin\libiomp5md.dll
- 如果是在某个env(例如名为work)下:删除..\Anaconda3\envs\work\Library\bin\libiomp5md.dll