scikit-learn 1.2中导入sklearn.model_selection报错求助
scikit-learn 1.2导入train_test_split报错解决
问题详情
使用scikit-learn 1.2版本,执行以下导入代码时触发AttributeError:
from sklearn.model_selection import train_test_split
完整错误栈:
Output exceeds the size limit. Open the full output data in a text editor --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Cell In[13], line 1 ----> 1 from sklearn.model_selection import train_test_split File /opt/homebrew/anaconda3/lib/python3.9/site-packages/sklearn/model_selection/__init__.py:23 20 from ._split import train_test_split 21 from ._split import check_cv ---> 23 from ._validation import cross_val_score 24 from ._validation import cross_val_predict 25 from ._validation import cross_validate File /opt/homebrew/anaconda3/lib/python3.9/site-packages/sklearn/model_selection/_validation.py:32 30 from ..utils.fixes import delayed 31 from ..utils.metaestimators import _safe_split ---> 32 from ..metrics import check_scoring 33 from ..metrics._scorer import _check_multimetric_scoring, _MultimetricScorer 34 from ..exceptions import FitFailedWarning File /opt/homebrew/anaconda3/lib/python3.9/site-packages/sklearn/metrics/__init__.py:41 37 from ._classification import multilabel_confusion_matrix 39 from ._dist_metrics import DistanceMetric ---> 41 from . import cluster 42 from .cluster import adjusted_mutual_info_score 43 from .cluster import adjusted_rand_score ... 19 ) File sklearn/metrics/_pairwise_distances_reduction/_base.pyx:1, in init sklearn.metrics._pairwise_distances_reduction._base() AttributeError: module 'sklearn.metrics._dist_metrics' has no attribute 'DistanceMetric32'
解决步骤
这个错误源于scikit-learn的Cython编译模块缺失或安装不完整,按以下方法修复:
- 重新安装指定版本:先卸载现有包,再重新安装scikit-learn 1.2.0,确保安装过程无中断
pip uninstall -y scikit-learn pip install scikit-learn==1.2.0 - Anaconda环境用户用conda安装:避免pip与conda的依赖冲突,用conda重新安装
conda remove scikit-learn conda install scikit-learn=1.2.0 - 清理安装缓存:如果重新安装后仍报错,清理缓存再重试
- pip缓存清理:
pip cache purge - conda缓存清理:
conda clean -a
- pip缓存清理:
- 验证安装有效性:安装完成后运行以下代码确认
import sklearn print(sklearn.__version__) from sklearn.model_selection import train_test_split
内容的提问来源于stack exchange,提问作者saad
相关产品推荐
相关产品推荐

