scikit-learn导入train_test_split报错:缺失DistanceMetric32属性
检查scikit-learn安装完整性
彻底卸载现有scikit-learn,执行pip uninstall -y scikit-learn,然后手动清理Python site-packages目录下的scikit-learn相关文件夹(如sklearn、scikit_learn-*.dist-info),之后重新安装指定版本:pip install scikit-learn==1.2.0,全程留意安装日志是否有报错。排查Python环境冲突
确认当前使用的Python环境路径,Linux/macOS执行which python,Windows执行where python,再用pip list检查该环境下scikit-learn版本是否为1.2.0,避免混用其他环境的包。验证依赖包兼容性
scikit-learn 1.2.0要求numpy>=1.17.3、scipy>=1.3.2,执行pip show numpy scipy查看当前版本,若不满足则升级:pip install numpy>=1.17.3 scipy>=1.3.2。尝试源码编译安装
安装编译依赖(Linux/macOS需gcc、g++,Windows需Visual Studio编译工具),然后执行pip install --no-binary :all: scikit-learn==1.2.0,强制从源码编译安装,避免预编译包损坏导致的文件缺失。排查本地命名冲突
检查当前工作目录下是否存在sklearn.py、metrics.py这类与scikit-learn模块同名的文件,若有则重命名或删除,避免覆盖官方模块。
内容的提问来源于stack exchange,提问作者Aaron Wang

