You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下搭配MKL使用PyTorch和Matplotlib的正确方法及报错解决

Windows下搭配MKL正常使用PyTorch与Matplotlib的解决方案

Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.报错的本质是当前Python环境中存在多份来自不同来源的libiomp5md.dll动态库:通常一份是MKL自带的OpenMP运行库,另一份是PyTorch预编译包内置的同版本库,Matplotlib导入时会触发NumPy加载MKL的动态库,后续PyTorch加载自身自带的库时就会触发冲突。

以下是规范的解决方案:

  • 方案1:删除重复动态库(最彻底的解决方案)
    首先激活当前使用的Python虚拟环境,执行命令搜索所有对应动态库:
    where libiomp5md.dll
    正常会返回2个路径,分别对应PyTorch内置的库(路径一般为{你的虚拟环境目录}/Lib/site-packages/torch/lib/libiomp5md.dll)和Anaconda/Miniconda环境自带的MKL库(路径一般为{你的虚拟环境目录}/Library/bin/libiomp5md.dll)。对比两个文件的版本,保留版本更高的文件,将另一个文件重命名为libiomp5md.dll.bak或者直接删除即可解决冲突。
  • 方案2:统一包管理安装源
    避免混用conda和pip安装数值计算相关依赖:如果使用conda管理环境,就通过conda源安装PyTorch、NumPy、Matplotlib和MKL相关包,conda会自动统一依赖的MKL库版本,不会出现多份动态库的问题;如果使用pip管理全量包,优先安装官方预编译的同批次依赖包,避免跨版本依赖冲突。

已有的两类临时方案都存在明显缺陷:Windows平台不支持nomkl会导致无法使用MKL的加速能力,而添加os.environ['KMP_DUPLICATE_LIB_OK']='True'的操作仅会屏蔽冲突警告,不会解决根本问题,极端情况下可能出现数值计算结果错误、程序无预警崩溃的问题,不建议在生产场景使用。

内容的提问来源于stack exchange,提问作者Rubi Shnol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 15:39:04