„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum erhalte ich in Python den Importfehler „Bad Magic Number“?

Warum erhalte ich in Python den Importfehler „Bad Magic Number“?

Veröffentlicht am 06.11.2024
Durchsuche:771

 Why am I getting a \

Bad Magic Number: Den Importfehler verstehen

Bei der Arbeit mit Python kann es frustrierend sein, auf den ImportError „Bad Magic Number“ zu stoßen. Dieser Fehler weist auf eine beschädigte Pyc-Datei, die kompilierte Version Ihres Python-Skripts, hin, die zu einer Inkompatibilität mit dem Python-Interpreter führt.

Die magische Zahl verstehen

Unter UNIX -Typ-Systeme beginnen Dateien mit einer speziellen Markierung, einer sogenannten magischen Zahl, die den Dateityp angibt. Python integriert bei der Erstellung ein ähnliches Konzept in seine Pyc-Dateien, um die Überprüfung beim Laden sicherzustellen.

Ursachen des Fehlers

Der Fehler „Bad Magic Number“ tritt auf, wenn die Magie Nummer in einer Pyc-Datei ist beschädigt. Dies kann folgende Ursachen haben:

  • Direktes Bearbeiten der Pyc-Datei
  • Ausführen der Pyc-Datei mit einer anderen Python-Version, aus der sie kompiliert wurde
  • Dateibeschädigung oder System Fehler

Problem lösen

Um dieses Problem zu beheben Fehler, folgen Sie diesen Schritten:

  • Löschen Sie die beschädigten Pyc-Dateien mit rm *.pyc.
  • Wenn die Pyc-Dateien zu externen Modulen gehören, müssen Sie sich an den Entwickler wenden py-Dateien und kompilieren Sie sie neu.

Intermittierender Import Probleme

In seltenen Fällen kann der Importfehler zeitweise auftreten. Dies kann daran liegen, dass die problematische Pyc-Datei nur unter bestimmten Bedingungen importiert wird. Untersuchen Sie den vollständigen Stack-Trace, wenn der Fehler auftritt, um weitere Details zu erhalten.

Magische Zahlenwerte

Das erste Wort einer Pyc-Datei stellt die magische Zahl dar. Sein Wert hängt von der Python-Version ab:

Python Version | Magic Number
--------------|----------------
2.5.1(r251)    | 62131
2.6.1(r261)    | 62161

Eine vollständige Liste der Werte magischer Zahlen finden Sie als Referenz in Python/import.c.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3