我尝试使用 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)
任何形式的帮助将不胜感激
最佳答案
您是使用pip install skyfield
安装Skyfield的,还是通过其他机制安装的?当前版本的 Skyfield 有一个 setup.py
,它坚持使用最新版本的 jplephem
,因为只有比 2.11 更新的版本才会具有 pck
模块Skyfield 需要的。 pip
安装工具应该检测到这一点,但如果没有检测到,则执行 pip install -U jplephem
强制更新 jplephem
应该会得到你又来了!
解决方法
如果您使用的是 conda
,您将安装旧版本。尝试:
conda uninstall jplephem
pip install -U jplephem
真正的解决方案
长期的解决方案是 conda 人员让这个库的打包再次工作。该库的“原料”上的拉取请求列表看起来在构建和分发最新包时遇到了多次失败:
但是最近的 PR 是手写的,并请求版主关注,所以希望问题能够得到解决。
关于python - 尝试使用 skyfield 时出现错误 "no module named jplephem.pck",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59563016/