加载pickle模型时未导入sklearn却报ModuleNotFoundError的原因与解决方法
原因及解决方案
错误原因
你通过pickle加载的model.pkl文件是基于scikit-learn(简称sklearn)训练并序列化保存的模型对象。当pickle执行反序列化操作时,需要找到模型类的原始定义——这些定义属于sklearn库,因此即使你的代码没有显式导入sklearn,加载模型的过程也会自动尝试调用sklearn模块,最终触发ModuleNotFoundError。
解决方法
- 安装scikit-learn库,根据你的环境选择对应命令:
- 使用pip包管理器:
pip install scikit-learn - 使用conda环境管理器(如果用Anaconda/Miniconda):
conda install scikit-learn
- 使用pip包管理器:
- 安装完成后,无需在代码中额外导入sklearn(除非后续要调用模型的其他方法),直接运行原代码即可正常加载模型。
内容的提问来源于stack exchange,提问作者Wasif Rehman
相关产品推荐
相关产品推荐

