运行BangloreHomePrices项目遇sklearn模块NotFoundError错误求助
解决
sklearn.linear_model.base模块找不到的问题 这个错误是因为旧版本scikit-learn序列化的模型,在1.2.0版本中模块结构发生了变化,找不到原路径的模块导致的。以下是几个可行的解决办法:
方案1:安装与模型序列化匹配的scikit-learn版本
- 该项目的模型通常是用scikit-learn 0.23.x或更早版本训练保存的,直接在Anaconda环境中指定版本安装:
conda install scikit-learn=0.23.2 - 若conda安装报错,改用pip安装:
pip install scikit-learn==0.23.2 - 安装完成后重启PyCharm,重新加载解释器后运行代码。
方案2:重新训练模型(推荐)
直接在当前1.2.0环境中重新生成适配的模型:
- 找到项目中的训练脚本(如
banglore_home_prices.ipynb或train.py) - 完整运行训练流程,生成新的模型文件
- 替换原有的
banglore_home_prices_model.pickle文件 - 新生成的模型完全适配当前环境,不会有模块路径问题,还能利用新版本特性。
方案3:临时模块路径映射(不推荐长期使用)
如果不想改动版本或重新训练,可手动添加模块映射兼容:
在加载pickle的代码前插入以下代码:
import sys from sklearn.linear_model import _base sys.modules['sklearn.linear_model.base'] = _base
之后再执行pickle.load(f)加载模型,此方法仅为临时兼容,可能存在版本差异导致的潜在问题。
解决版本更新报错的问题
若更新scikit-learn时持续报错,可尝试:
- 清理conda缓存:
conda clean --all - 创建全新Anaconda环境,从头安装依赖:
conda create -n banglore_prices python=3.8 conda activate banglore_prices conda install scikit-learn=1.2.0 pandas numpy - 在PyCharm中切换到这个新环境作为解释器。
内容的提问来源于stack exchange,提问作者S.Ansari
相关产品推荐
相关产品推荐

