You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

scikit-kbio引发ImportError:无法从scipy.stats导入ConstantInputWarning

scikit-bio导入错误解决方法:无法从scipy.stats导入ConstantInputWarning

错误信息

ImportError: cannot import name 'ConstantInputWarning' from 'scipy.stats' (/home/smith/miniconda3/lib/python3.8/site-packages/scipy/stats/__init__.py)

环境版本

  • Python:3.8
  • scipy:1.8.1
  • numpy:1.22.4
  • skbio:0.5.9

问题原因

近期安装numba等软件时,可能间接升级了scipy版本。skbio 0.5.9的代码依赖旧版scipy的模块结构——ConstantInputWarning在scipy 1.7.x及之前属于scipy.stats公开模块,但scipy 1.8.x版本将其移至scipy.stats._stats_py私有模块,旧版skbio仍从原路径导入,导致报错。

解决方法

方法1:降级scipy到兼容版本

直接将scipy降级到skbio 0.5.9支持的版本(如1.7.3),执行以下命令:

# 使用pip
pip install scipy==1.7.3

# 若使用conda环境
conda install scipy=1.7.3

方法2:修改skbio导入代码(临时应急)

找到skbio中涉及ConstantInputWarning导入的文件(例如skbio/stats/ordination/_utils.py),将导入语句:

from scipy.stats import ConstantInputWarning

替换为:

from scipy.stats._stats_py import ConstantInputWarning

注意需修改所有相关导入的文件,此方法适合临时解决,但skbio更新后会覆盖修改。

方法3:更新skbio到最新兼容版本

检查并升级skbio至支持scipy 1.8.x的版本,执行命令:

# 使用pip
pip install --upgrade scikit-bio

# 若使用conda环境
conda update scikit-bio

升级前确认新版本对Python、numpy等依赖的要求是否与当前环境兼容。

内容的提问来源于stack exchange,提问作者Roger V.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 20:35:13