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

Windows环境下K-Means内存泄漏警告问题及无权限解决方案咨询

问题解答

1. 忽略警告的隐患

这个警告提示Windows+MKL环境下的KMeans存在内存泄漏问题——当数据块数量少于可用线程数时,程序会逐渐占用更多内存。

  • 若只是小数据集、偶尔运行,当前结果正常的话短期内不会出现明显问题;
  • 但如果是长期运行、处理大数据量,内存会持续累积占用,最终可能导致内存不足报错,甚至拖慢系统、让Python进程崩溃,存在稳定性隐患。

2. 无需管理员权限的解决方案

方案一:调整代码导入顺序(最直接)

你之前设置环境变量的时机不对——MKL相关库在导入KMeans前已加载,后续设置的变量无法生效。正确顺序是先设置环境变量,再导入KMeans:

import os
os.environ["OMP_NUM_THREADS"] = "1"
# 之后再导入KMeans
from sklearn.cluster import KMeans

方案二:命令行临时设置(无需修改代码)

启动Python脚本时先临时设置环境变量,不会影响系统全局配置,也不需要管理员权限:

  • CMD中运行:
set OMP_NUM_THREADS=1 && python your_script.py
  • PowerShell中运行:
$env:OMP_NUM_THREADS=1; python your_script.py

方案三:IDE运行配置中添加环境变量

如果使用PyCharm、VS Code等IDE:

  • 找到脚本的运行配置,进入「环境变量」选项;
  • 添加OMP_NUM_THREADS=1,保存配置后运行脚本,每次启动都会自动应用该设置。

方案四:Jupyter Notebook生效方法

在Notebook首个单元格运行设置代码,然后重启内核,再导入KMeans即可生效:

import os
os.environ["OMP_NUM_THREADS"] = "1"

内容的提问来源于stack exchange,提问作者Jung Hun Kim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 23:15:57