问题描述:
在Jupyter notebook中使用matplotlib绘图,此前好好的。突然有一天一运行plt.plot函数内核就会挂掉。查看jupyter notebook服务窗口的报错信息为
Kernel started: d65828cf-4958-43b7-8b4d-c23757f70824, name: python3 [W 08:43:10.941 NotebookApp] Got events for closed stream <zmq.eventloop.zmqstream.ZMQStream object at 0x0000021A2E2CAF08> [W 08:43:10.942 NotebookApp] Got events for closed stream <zmq.eventloop.zmqstream.ZMQStream object at 0x0000021A2E2CAF08> 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/. [I 08:43:16.661 NotebookApp] KernelRestarter: restarting kernel (1/5), new random ports WARNING:root:kernel d65828cf-4958-43b7-8b4d-c23757f70824 restarted
重装了matplotlib不能解决问题。 换一个虚拟环境没有同样的问题。
解决方法:
在虚拟环境中设置KMP_DUPLICATE_LIB_OK=TRUE。 具体方法为
激活虚拟环境
activate envi_name
设置环境变量
set KMP_DUPLICATE_LIB_OK=TRUE
退出虚拟环境
deactivate
重新激活虚拟环境
activate envi_name
查看环境变量
echo %KMP_DUPLICATE_LIB_OK%
结果显示为TRUE,则重启Jupyter notebook,问题解决。