1

我正在尝试使用 skyfield,但出现以下错误:“ModuleNotFoundError:没有名为 'jplephem.pck' 的模块”我在第一行本身收到错误,它是这样的:

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-6-3a2b53f77cba> in <module>
----> 1 from skyfield.api import load
      2 
      3 planets = load('de421.bsp')
      4 earth, mars = planets['earth'], planets['mars']
      5 

~\Anaconda3\lib\site-packages\skyfield\api.py in <module>
     12 from .errors import DeprecationError
     13 from .iokit import Loader, load_file
---> 14 from .planetarylib import PlanetaryConstants
     15 from .positionlib import position_from_radec
     16 from .starlib import Star

~\Anaconda3\lib\site-packages\skyfield\planetarylib.py in <module>
      3 import re
      4 from numpy import array, cos, einsum, nan, rollaxis, sin
----> 5 from jplephem.pck import DAF, PCK
      6 from .constants import ASEC2RAD, AU_KM, DAY_S, tau
      7 from .functions import rot_x, rot_y, rot_z

ModuleNotFoundError: No module named 'jplephem.pck'

我试图在网上查找它,它说它是一个依赖项,我不知道该怎么做才能调试它


from skyfield.api import load

planets = load('de421.bsp')
earth, mars = planets['earth'], planets['mars']

ts = load.timescale()
t = ts.now()
position = earth.at(t).observe(mars)
ra, dec, distance = position.radec()

print(ra)
print(dec)
print(distance)

任何形式的帮助将不胜感激

4

1 回答 1

0

您是使用pip install skyfield还是通过其他机制安装 Skyfield?当前版本的 Skyfieldsetup.py坚持使用最新版本,jplephem因为只有比 2.11 更新的版本才有pckSkyfield 需要的模块。安装工具应该已经检测到这pip一点,但如果没有,pip install -U jplephem强制更新jplephem应该会让你重新开始!

解决方法

如果您正在使用conda,您将安装旧版本。尝试:

conda uninstall jplephem
pip install -U jplephem

真正的解决方案

长期的解决方案是让 conda 人员让他们的这个库的包装再次工作。库的“原料”上的拉取请求列表看起来像是在构建和分发最新包时反复失败:

在此处输入图像描述

但最近的 PR 是手写的,并要求版主注意,所以希望事情会得到解决。

于 2020-01-05T23:33:54.920 回答