Python 2.7 为什么赢了';t PyEphem是否计算手动生成对象的高程?

Python 2.7 为什么赢了';t PyEphem是否计算手动生成对象的高程?,python-2.7,pyephem,Python 2.7,Pyephem,我已经使用PyEphem很长一段时间了,但是从几天前(可能是几周前?)开始,我的一个脚本就不再工作了。这个脚本计算了小行星的上升时间和落下时间,我使用。我发现Pyphem并没有正确计算小行星的高度——但是,它正确地计算了太阳的高度 下面是一个简单的脚本: import ephem import numpy import callhorizons this_target = '3552' body = callhorizons.query(this_target) body.set_discr

我已经使用PyEphem很长一段时间了,但是从几天前(可能是几周前?)开始,我的一个脚本就不再工作了。这个脚本计算了小行星的上升时间和落下时间,我使用。我发现Pyphem并没有正确计算小行星的高度——但是,它正确地计算了太阳的高度

下面是一个简单的脚本:

import ephem
import numpy
import callhorizons 

this_target = '3552'
body = callhorizons.query(this_target)
body.set_discreteepochs(2415730.0)
body.get_elements()
this_target = body.export2pyephem()[0]

### works fine for the Sun
#this_target = ephem.Sun()

date = ephem.now()

this_target.compute(date)

obs = ephem.Observer()
obs.epoch = 2000.0
obs.lon = -111.653152/180.*numpy.pi
obs.lat = 35.184108/180.*numpy.pi
obs.elevation = 2738 # m
obs.date = date
obs.horizon = 0.

# if target is '3552', this_target.alt stays constant
for time in numpy.arange(date, date+1, 0.1):
    obs.date = time
    this_target.compute(obs)
    print time, this_target.alt, this_target.ra

### if this_target is '3552', this results in a segmentation fault
print obs.next_rising(this_target)
使用自定义目标(
3552
),Pyphem不会计算目标的高程,因此在尝试推导该目标的上升/设定时间时会遇到分段错误


我尝试安装最新版本的PyEphem(3.7.6.0),但没有任何帮助。有人能复制(解释?)这个错误吗?

假设纬度为35度,这个物体靠近黄道上方略高的木星,并且它有8年的周期,可能是在大约2年或3年之后它才上升。

假设纬度为35度,事实上,这颗天体距离黄道稍高的木星很近,它的周期为8年,这可能是因为它在大约2年或3年后才会上升。

由R.J.Mathar的回答触发,我再次研究了这个问题,发现这个问题已经消失了。我现在使用Python2.7和3.5获得正确的结果;两者都使用PyEphem 3.7.6.0


我很想提供更多关于问题所在的见解,但我不知道。我不确定我的系统是否有任何重要变化。这似乎是由某种安装问题引起的。

由R.J.Mathar的回答触发,我再次调查,发现问题已经消失。我现在使用Python2.7和3.5获得正确的结果;两者都使用PyEphem 3.7.6.0


我很想提供更多关于问题所在的见解,但我不知道。我不确定我的系统是否有任何重要变化。这似乎是由于某种安装问题造成的。

当时可以观察到该物体,因此这不是原因。而且,它对任何对象都不起作用。然而,这个问题已经消失了(见下面我的答案)。这个物体当时是可以观察到的,所以这不是原因。而且,它对任何对象都不起作用。然而,这个问题已经消失了(见下面我的答案)。