MacBook Air M2环境下导入dataprep.eda的plot触发ImportError
解决Dataprep plot导入时的Scipy版本兼容问题
问题原因
这个错误是因为dataprep依赖的旧版Scipy中,Ttest_1sampResult的位置在scipy.stats.stats,但新版Scipy已经将该类迁移到了scipy.stats._stats_py或直接放在scipy.stats模块下。Mac环境下的包依赖版本不匹配,导致导入路径无法对应。
可行解决方案
1. 锁定兼容的Scipy版本
找到dataprep官方明确支持的Scipy版本范围(比如dataprep 0.4.4及之前版本适配Scipy 1.9.3),安装指定版本:
pip uninstall scipy -y pip install scipy==1.9.3
2. 临时修改dataprep的导入代码
找到dataprep的安装目录(可以通过pip show dataprep查看Location字段),定位到导入Ttest_1sampResult的文件(比如dataprep/eda下的相关模块),将原有导入代码:
from scipy.stats.stats import Ttest_1sampResult
替换为兼容新旧版本的写法:
try: from scipy.stats.stats import Ttest_1sampResult except ImportError: from scipy.stats._stats_py import Ttest_1sampResult
3. 用虚拟环境隔离依赖
创建独立虚拟环境避免全局包冲突,确保依赖版本完全匹配:
# 创建虚拟环境 python -m venv dataprep_env # 激活环境(Mac/Linux) source dataprep_env/bin/activate # 安装指定版本的依赖 pip install dataprep==0.4.4 scipy==1.9.3
验证操作
完成上述步骤后,重新运行代码:
import dataprep from dataprep.eda import plot
无报错则说明修复成功。
内容的提问来源于stack exchange,提问作者Sebastian Rodriguez Rodriguez
相关产品推荐
相关产品推荐

