如何解决XGBoost运行时无法从xgboost.compat导入scipy_csr的ImportError问题
ImportError: cannot import name 'scipy_csr' from 'xgboost.compat' 报错解决方案
核心原因
该报错是XGBoost版本与Scipy版本不兼容导致:Scipy 1.7.0及以上版本移除了旧版稀疏矩阵接口,而1.6.0以下版本的XGBoost未适配Scipy的新接口,调用时就会触发该导入错误。
排查步骤
- 确认当前环境的XGBoost版本,执行命令:
pip show xgboost,查看返回结果的Version字段 - 确认当前环境的Scipy版本,执行命令:
pip show scipy,查看返回结果的Version字段 - 验证Python环境一致性:你当前报错路径对应Python 3.9版本,执行pip命令时需确认使用的是对应3.9版本的pip,避免依赖安装到其他Python环境的冲突问题
解决方法
- 方案1(优先推荐):升级XGBoost到适配版本,执行命令:
1.6.0及以上版本的XGBoost已经完成Scipy新接口适配,兼容性最好。pip install xgboost>=1.6.0 -U - 方案2:如果项目要求不能升级XGBoost,可降级Scipy到兼容版本,执行命令:
pip install scipy<=1.6.1 -U - 如果上述操作后仍报错,先完全卸载旧版本依赖再重新安装:
pip uninstall -y xgboost scipy pip install xgboost>=1.6.0 scipy
内容的提问来源于stack exchange,提问作者Dewi P Lee
相关产品推荐
相关产品推荐

