python - 尝试使用 skyfield 时出现错误 "no module named jplephem.pck"

标签 python skyfield

我尝试使用 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 人员让这个库的打包再次工作。该库的“原料”上的拉取请求列表看起来在构建和分发最新包时遇到了多次失败:

enter image description here

但是最近的 PR 是手写的,并请求版主关注,所以希望问题能够得到解决。

关于python - 尝试使用 skyfield 时出现错误 "no module named jplephem.pck",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59563016/

相关文章:

c++ - Boost.Python : Weak reference to object?

python - 用skyfield寻找暮光之城

python - 使用天空场的 ECEF 到 J2000

python 将 au 转换为 km

Python 迭代 cx_Oracle 结果集时出错

python - 我无法运行服务器 Django 2.0

Python:读取和打印二进制文件

python - 是否可以在内存中保持空间以减少加载时间?

python - 随时间传播卫星目录的有效方法