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

运行scikit-learn K近邻时出现“OSError: GetModuleFileNameEx failed”错误原因咨询

解决scikit-learn KNeighborsClassifier偶发OSError: GetModuleFileNameEx failed问题

问题背景

  • 使用KNeighborsClassifier(n_neighbors=3)执行多分类任务,调用.fit()训练、.predict()预测时,偶发OSError: GetModuleFileNameEx failed错误,代码循环运行时约50%概率触发崩溃
  • 已测试scikit-learn 1.3.0和1.2.0版本,问题均存在
  • 使用Anaconda作为Python包管理器

可行解决方案

1. 更新依赖库

该错误多与底层MKL或OpenMP库冲突有关,Anaconda环境下执行以下命令更新核心依赖:

conda update scikit-learn numpy scipy mkl

更新完成后重启Python环境再测试。

2. 禁用多线程并行

KNeighborsClassifier默认启用多线程加速,线程资源竞争可能引发该错误,强制单线程运行:

from sklearn.neighbors import KNeighborsClassifier

# 初始化模型时设置单线程
knn = KNeighborsClassifier(n_neighbors=3, n_jobs=1)
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)

3. 切换BLAS后端

Anaconda默认使用MKL后端,尝试切换为OpenBLAS:

conda install -c conda-forge scikit-learn openblas

安装后验证后端配置:

import sklearn
print(sklearn.show_versions())

确认BLAS/LAPACK后端为OpenBLAS后再运行代码。

4. 重建干净环境

若上述方法无效,可能是环境依赖混乱,新建纯净Anaconda环境:

conda create -n clean_sklearn python=3.10 scikit-learn=1.3.0 numpy scipy
conda activate clean_sklearn

在新环境中执行代码,排除旧环境的依赖冲突。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 03:57:02