Python skyfield FileNotFoundError: [Errno 2] No such file or directory: 'de413.bsp' beheben
English
Deutsch
Problem:
Beim Versuch, die Python-Bibliothek skyfield zu verwenden, sehen Sie eine Ausnahme wie
skyfield_de413_error.txt
Input In [2], in <cell line: 11>()
8 from calendar import monthrange
10 ts = api.load.timescale()
---> 11 ephem = api.load_file('de413.bsp')
File /usr/local/lib/python3.10/dist-packages/skyfield/iokit.py:412, in load_file(path)
410 base, ext = os.path.splitext(path)
411 if ext == '.bsp':
--> 412 return SpiceKernel(path)
413 raise ValueError('unrecognized file extension: {}'.format(path))
File /usr/local/lib/python3.10/dist-packages/skyfield/jpllib.py:71, in SpiceKernel.__init__(self, path)
69 self.path = path
70 self.filename = os.path.basename(path)
---> 71 self.spk = SPK.open(path)
72 self.segments = [SPICESegment(self, s) for s in self.spk.segments]
73 self.codes = set(s.center for s in self.segments).union(
74 s.target for s in self.segments)
File /usr/local/lib/python3.10/dist-packages/jplephem/spk.py:49, in SPK.open(cls, path)
46 @classmethod
47 def open(cls, path):
48 """Öffnet die Datei unter `path` und gibt eine SPK-Instanz zurück."""
---> 49 return cls(DAF(open(path, 'rb')))
FileNotFoundError: [Errno 2] No such file or directory: 'de413.bsp'Lösung
Schauen Sie sich die api.load(...)-Zeile in Ihrem Code an:
example_load_de413.py
ephem = api.load_file('de413.bsp')Er versucht, die Daten aus der Datei de413.bsp im aktuellen Verzeichnis zu laden. Diese Datei enthält Positionsdaten von Objekten am Himmel und Sie müssen diese Datei manuell herunterladen.
Sie können die Datei von der NASA herunterladen. Achten Sie nur darauf, sie entweder im richtigen Verzeichnis abzulegen oder den Pfad im api.load()-Aufruf so anzupassen, dass er auf die Datei verweist.
URL zum Herunterladen der Datei:
de413.bsp_url.txt
https://ssd.jpl.nasa.gov/ftp/eph/planets/bsp/de413.bspMeine bevorzugte Methode zum Herunterladen ist die Verwendung von wget:
download_de413_command.sh
wget https://ssd.jpl.nasa.gov/ftp/eph/planets/bsp/de413.bspDieser Befehl platziert die Datei im aktuellen Verzeichnis.
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow