我正在尝试与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的人们重新使用该图书馆的包装。库的“原料”上的拉取请求列表看起来好像在构建和分发最新软件包时屡屡失败:

python - 尝试使用skyfield时出现错误“没有名为jplephem.pck的模块”-LMLPHP

但是最新的PR是手写的,并要求主持人注意,因此,希望情况会得到解决。

关于python - 尝试使用skyfield时出现错误“没有名为jplephem.pck的模块”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59563016/

10-11 03:56