导入HDDM报错AttributeError: pymc无stochastic_from_dist属性
导入HDDM触发
module 'pymc' has no attribute 'stochastic_from_dist'报错解决 问题表现
执行导入语句:import hddm
抛出的错误追溯信息:
~\anaconda3\lib\site-packages\kabuki\utils.py in <module> 310 return pm.flib.cauchy(x, 0, S) + len(x) * np.log(2) 311 --> 312 HalfCauchy = pm.stochastic_from_dist(name="Half Cauchy", 313 random=centered_half_cauchy_rand, 314 logp=centered_half_cauchy_logp, AttributeError: module 'pymc' has no attribute 'stochastic_from_dist'
报错原因
版本不兼容:HDDM及其依赖的kabuki库是基于pymc 2.x版本开发的,当前环境安装的是pymc3及以上的新版本,新版pymc已经完全移除了stochastic_from_dist旧API,调用时自然找不到对应属性。
修复步骤
- 先卸载当前环境里所有不兼容的pymc版本,避免版本冲突:
pip uninstall -y pymc pymc3
如果你是用conda安装的pymc,执行对应conda命令卸载即可:conda remove -y pymc pymc3 - 安装和HDDM适配的pymc 2.3.8版本,这是最后一个保留
stochastic_from_dist接口的稳定pymc2版本:pip install pymc==2.3.8 - 如果装完pymc2之后导入触发numpy相关报错,把numpy降级到适配pymc2的1.21.6版本即可:
pip install numpy==1.21.6 - 重新执行
import hddm,没有报错就说明修复完成。
内容的提问来源于stack exchange,提问作者Anna
相关产品推荐
相关产品推荐

