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

Orange 3.30.1导入SMOTE提示无法从sklearn.metrics.pairwise导入_euclidean_distances

问题根因

该报错为imbalanced-learn 0.8.1版本与Orange 3.30.1内置的scikit-learn 1.0版本的兼容性冲突导致:
imbalanced-learn 0.8.1依赖scikit-learn的私有函数_euclidean_distances,但scikit-learn 1.0版本已将该私有函数从模块对外导出列表中移除,哪怕函数定义仍存在于源码文件中,也无法直接通过import语句导入。

解决方法

方案1:升级为适配版本的imbalanced-learn

打开Orange命令提示符,执行如下命令卸载旧版本、安装兼容版本:

pip uninstall -y imblearn imbalanced-learn
pip install imbalanced-learn>=0.9.0

0.9.0及以上版本的imbalanced-learn已修复对scikit-learn私有函数的依赖,可正常导入SMOTE。

方案2:临时补丁修复(无需改动已安装库版本)

如果不想调整已安装的库版本,可在Python Script组件的代码最开头先添加补丁代码,再导入SMOTE:

# 手动注入缺失的私有函数引用
from sklearn.metrics.pairwise import euclidean_distances
import sklearn.metrics.pairwise
setattr(sklearn.metrics.pairwise, '_euclidean_distances', euclidean_distances)

# 后续可正常导入SMOTE
from imblearn.over_sampling import SMOTE

该方案通过给scikit-learn的pairwise模块手动添加_euclidean_distances别名的方式,临时满足imbalanced-learn的导入要求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:24:01