我正在尝试与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更新的版本才会具有Skyfield所需的pck
模块。 pip
安装工具应该已经检测到此问题,但是如果没有检测到,执行pip install -U jplephem
强制更新jplephem
应该会让您重新开始!
解决方法
如果使用的是conda
,则将安装旧版本。尝试:
conda uninstall jplephem
pip install -U jplephem
真正的解决方案
长期的解决方案是让conda的人们重新使用该图书馆的包装。库的“原料”上的拉取请求列表看起来好像在构建和分发最新软件包时屡屡失败:
但是最新的PR是手写的,并要求主持人注意,因此,希望情况会得到解决。
关于python - 尝试使用skyfield时出现错误“没有名为jplephem.pck的模块”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59563016/