JupyterNotebook内核挂掉了

在使用JupyterNotebook的过程中出现了内核挂掉了的问题,日志中出现报错如下:

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/.

下面是ChatGPT给出的答案:

这个错误信息表明您的程序中存在多个 OpenMP 运行时环境的副本,这通常发生在使用了多个依赖库时,这些库都静态链接了自己的 OpenMP 运行时。这种情况可能导致性能下降或产生错误的结果。错误信息中提到的 `libiomp5md.dll` 是 Intel OpenMP 运行时的一部分,通常与 Intel 编译器或相关库(如 Intel MKL)一起使用。

要解决这个问题,有几个步骤可以尝试:

1. **确保环境一致性**:确保您的所有库和程序都是用相同的编译器和工具链编译的。不同的编译器可能会链接不同版本的 OpenMP 库。

2. **避免静态链接**:确保您的程序和依赖的库没有静态链接 OpenMP 运行时。这通常涉及到在编译时使用正确的标志。

3. **设置环境变量**:作为一种临时的解决方案,您可以设置环境变量 `KMP_DUPLICATE_LIB_OK=TRUE`。这会让程序忽略多个 OpenMP 运行时的问题并继续运行,但这可能会导致程序崩溃或产生不正确的结果,因此这不是一个推荐的长期解决方案。

4. **检查依赖库**:检查您的程序所依赖的库,看看是否有多个库都包含了 OpenMP 的支持。如果是这样,尝试重新配置这些库,以确保只有一个库包含 OpenMP 支持。

5. **更新或重新安装库**:有时更新或重新安装涉及的库和工具可以解决兼容性问题。

6. **寻求专业帮助**:如果您在尝试上述步骤后仍然遇到问题,可能需要联系库的开发者或寻求更专业的帮助。

在进行这些更改时,请确保您有适当的备份,以防需要恢复到之前的状态。

经过在网上查询,给出两个解决方案

  1. 使用如下代码忽略多个 OpenMP 运行时的问题
    import os
    os.environ['KMP_DUPLICATE_LIB_OK'] = 'Ture'
  2. 将调用OpenMP的库全部卸载重新安装,如matplotlib和numpy等。