运行exoplanet凌星建模代码报Angle属性不存在错误的解决求助
错误原因
你遇到的报错是因为安装的exoplanet版本与官方v0.1.5教程的接口不匹配,Angle分布类在你当前使用的exoplanet版本中已经被移除或转移到了其他模块。
解决方案
你可以选择以下任意一种方式解决:
方案一:安装与教程匹配的v0.1.5版本exoplanet
直接运行以下命令指定版本安装即可,避免其他接口不兼容问题:pip install exoplanet==0.1.5如果安装后出现pymc3、theano版本冲突,建议创建单独的虚拟环境,安装v0.1.5版本要求的配套依赖即可。
方案二:修改代码适配你当前的新版exoplanet
不需要降级版本,直接替换Angle分布的调用即可,有两种替换方式:- 替换为
Uniform分布实现相同效果Angle本质是取值范围在[0, 2π)的均匀周期分布,直接替换代码中的对应行即可:
# 把原来的omega = xo.distributions.Angle("omega",shape=2, testval=np.zeros(2)) # 替换为 import numpy as np omega = pm.Uniform("omega", lower=0, upper=2*np.pi, shape=2, testval=np.zeros(2))- 调用新版exoplanet的Angle分布
如果你使用的是v0.4及以上版本的exoplanet,Angle分布已经转移到核心命名空间,替换为以下写法即可:
omega = xo.Angle("omega",shape=2, testval=np.zeros(2))- 替换为
内容的提问来源于stack exchange,提问作者Yasith Ramawickrama
相关产品推荐
相关产品推荐

