Google Colab导入mlxtend的SFS时报sklearn.externals.joblib不存在如何解决
问题原因
该报错由版本不兼容导致:scikit-learn 0.23及以上版本移除了sklearn.externals.joblib路径,将joblib改为独立依赖包,而低版本mlxtend仍在调用该旧路径,因此触发模块缺失报错。
Google Colab 环境解决方案
按以下顺序执行操作即可解决:
- 第一步:卸载当前环境中旧版本的mlxtend与joblib,消除版本冲突
!pip uninstall -y mlxtend joblib - 第二步:安装适配新路径的最新稳定版mlxtend和对应依赖
!pip install mlxtend==0.23.1 joblib==1.3.2 - 第三步:必须重启Colab运行时,点击菜单栏「运行时」->「重新启动运行时」,再重新执行所有导入代码,直接在当前会话导入会读取旧缓存,依然会报错
- 第四步:重启后即可正常导入目标模块
from mlxtend.feature_selection import SequentialFeatureSelector as SFS
备用兼容方案
如果因特殊需求必须使用低版本mlxtend,可在导入SFS前先执行路径映射代码,临时修复路径调用问题:
import joblib import sys sys.modules['sklearn.externals.joblib'] = joblib
内容的提问来源于stack exchange,提问作者Kusek
相关产品推荐
相关产品推荐

