PyCaret调用plot_model()报scipy导入错误的解决方案咨询
问题根因
所有报错均由依赖版本不兼容导致:
_init_nd_shape_and_axes_sorted导入错误:scipy 1.10.0及以上版本删除了这个内部私有函数,你当前使用的PyCaret正式版未适配高版本scipy。- Jinja2相关报错:Jinja2 3.1.0及以上版本移除了部分旧接口,PyCaret及其依赖的可视化分析库(如ydata-profiling)仍在调用旧接口,触发报错。
解决方法
方案1:固定依赖版本(稳定性最高,推荐生产环境使用)
无需重装PyCaret,直接将冲突依赖降级到官方测试过的兼容版本即可,执行命令:
pip install scipy==1.9.3 jinja2==3.0.3
如果后续还出现其他依赖冲突,可以直接安装带完整兼容依赖的PyCaret稳定版:
pip install pycaret[full]==3.0.4 --use-deprecated=legacy-resolver
注意:安装完成后不要随意执行pip install --upgrade批量升级包,避免依赖再次被升级到不兼容版本。
方案2:安装PyCaret预发布版(适合测试/尝鲜场景)
PyCaret开发分支已经完成了高版本scipy、Jinja2的适配修复,如果你不想降级依赖,可以直接安装预发布版本:
pip install --pre pycaret
注意:预发布版本未经过全量测试,可能存在未知bug,不建议在生产环境使用。
关于后续版本修复说明
上述兼容问题的修复代码已经合并到PyCaret主分支,会随3.1.0正式版发布,目前该版本仍在测试阶段,没有明确的正式发布时间。
如果近期使用中频繁遇到依赖报错,优先选择固定依赖版本的方案,等3.1.0正式版发布后再升级即可。
内容的提问来源于stack exchange,提问作者Nutchapong Lertsithikarnkosol
相关产品推荐
相关产品推荐

