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

导入galpro时出现Scipy无法导入median_abs_deviation的问题求助

解决 ImportError: cannot import name 'median_abs_deviation' 问题

你提到已经尝试过重装不同版本的scipy(当前是1.5.4,符合文档要求的1.3.0+)但问题依旧,那我们可以从几个更深层的方向排查:

1. 确认当前环境加载的scipy版本是否正确

有时候我们以为安装了指定版本,但Python实际调用的是其他路径下的旧版本。你可以在报错的同一个环境里运行以下代码:

import scipy
print("当前scipy版本:", scipy.__version__)
print("scipy安装路径:", scipy.__file__)

如果输出的版本不是1.5.4,或者路径不是你预期的虚拟环境/安装目录,说明环境存在版本冲突,需要切换到正确的环境,或者删除冲突的旧版本。

2. 检查scipy安装是否损坏

即使版本正确,安装过程中可能出现文件缺失或损坏。你可以先彻底卸载scipy,清理缓存后重新安装:

  • 卸载scipy:
    pip uninstall -y scipy
    
  • 清理pip缓存(避免残留损坏文件):
    • Linux/macOS:
      rm -rf ~/.cache/pip
      
    • Windows(命令提示符):
      rmdir /s /q %LocalAppData%\pip\Cache
      
  • 重新安装指定版本:
    pip install scipy==1.5.4
    

3. 测试单独导入函数是否可行

在你的环境中单独运行以下代码,确认是否是galpro的导入逻辑问题:

from scipy.stats import median_abs_deviation

如果这行代码也报错,那说明你的scipy确实存在问题;如果能成功导入,那可能是galpro的模块导入存在循环引用(从报错栈看,validation.py导入plot.py,plot.py又导入utils.py,存在循环依赖可能),可以试试重启Python内核/终端后再导入galpro。

4. 临时兼容修改(应急方案)

如果以上方法都无法解决,你可以临时修改galpro的utils.py文件来绕过这个问题:

  1. 打开~/galpro/galpro/utils.py文件
  2. 找到第5行的导入语句:
    from scipy.stats import entropy, kstest, median_abs_deviation, cramervonmises
    
  3. 修改为:
    from scipy.stats import entropy, kstest, cramervonmises
    from scipy.stats.mstats import median_abs_deviation
    
    scipy.stats.mstats中的median_abs_deviation在更早的scipy版本就已存在,兼容性更强,能临时解决导入问题。不过这只是权宜之计,建议还是找到根源问题修复。

内容的提问来源于stack exchange,提问作者Lara

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 10:27:47