Python调用hddm绘图报错及kabuki安装超时问题求助
问题解决:HDDM绘图报错与Kabuki安装超时处理
一、HDDM绘图报错:ValueError: Number of rows must be a positive integer, not 5.0
问题背景
使用Anaconda3下的Python 3.7、HDDM 0.9.7版本,按照官方教程运行代码时,执行m.plot_posterior_predictive(figsize=(14, 10))抛出上述错误,无法生成目标示例图。
原因与解决方案
该错误源于依赖库Kabuki的版本bug:绘图时计算的子图行数为浮点数,而matplotlib要求传入整数。解决方法如下:
- 安装修复后的Kabuki版本:确保安装Kabuki的最新开发版(下文会解决安装超时问题),新版本已修复该类型转换问题。
- 手动修改Kabuki代码(临时方案):
- 找到本地Kabuki安装目录下的
plotting.py文件(路径类似Lib\site-packages\kabuki\plotting.py) - 定位到计算子图行数的代码段,将行数变量强制转换为整数,例如将
rows = np.ceil(n_subjects / cols)修改为rows = int(np.ceil(n_subjects / cols))
- 找到本地Kabuki安装目录下的
二、Kabuki安装Git克隆超时问题
问题背景
运行pip install git+https://github.com/hddm-devs/kabuki时,出现Git克隆超时错误:fatal: unable to access 'https://github.com/hddm-devs/kabuki/': Failed to connect to github.com port 443 after 21097 ms: Timed out
解决方案
- 方案1:使用GitHub镜像加速克隆
替换GitHub地址为国内镜像,执行命令:pip install git+https://github.com.cnpmjs.org/hddm-devs/kabuki - 方案2:手动下载源码本地安装
- 前往hddm-devs的Kabuki仓库下载源码压缩包
- 解压压缩包到本地目录
- 打开终端进入解压后的目录,执行:
pip install .
- 方案3:延长pip超时时间
通过增加超时参数提升克隆成功率:pip --default-timeout=100 install git+https://github.com/hddm-devs/kabuki
内容的提问来源于stack exchange,提问作者user257122
相关产品推荐
相关产品推荐

