Die magische Zahl stammt von Systemen vom Typ UNIX, bei denen die ersten Bytes einer Datei eine Markierung enthielten, die den Dateityp angibt.
Python fügt seinen pycDateien beim Erstellen einen ähnlichen Marker hinzu .
Dann stellt der Python-Interpreter sicher, dass diese Nummer beim Laden korrekt ist.
Alles, was diese magische Zahl beschädigt, wird Ihr Problem verursachen. Dies umfasst das Bearbeiten der pycDatei oder den Versuch, eine pycvon einer anderen Python-Version (normalerweise später) als Ihr Interpreter auszuführen .
Wenn es sich um Ihre pyc Dateien handelt, löschen Sie sie einfach und lassen Sie den Interpreter die pyDateien neu kompilieren . Auf UNIX-Systemen kann dies so einfach sein wie:
rm *.pyc
oder:
find . -name '*.pyc' -delete
Wenn sie nicht Ihnen gehören, müssen Sie entweder die pyDateien zur Neukompilierung oder einen Interpreter abrufen, der die pycDateien mit diesem bestimmten magischen Wert ausführen kann .
Eine Sache, die die intermittierende Natur verursachen könnte. Das pycProblem kann möglicherweise nur unter bestimmten Bedingungen importiert werden. Es ist höchst unwahrscheinlich, dass es manchmal importiert wird. Sie sollten die tatsächliche vollständige Stapelverfolgung überprüfen, wenn der Import fehlschlägt.
Abgesehen davon ist das erste Wort aller meiner 2.5.1(r251:54863) pycDateien 62131, 2.6.1(r261:67517)ist 62161. Die Liste aller magischen Zahlen finden Sie in Python/import.c, der Vollständigkeit halber hier wiedergegeben (aktuell zum Zeitpunkt der Veröffentlichung der Antwort, möglicherweise seitdem geändert):
1.5: 20121
1.5.1: 20121
1.5.2: 20121
1.6: 50428
2.0: 50823
2.0.1: 50823
2.1: 60202
2.1.1: 60202
2.1.2: 60202
2.2: 60717
2.3a0: 62011
2.3a0: 62021
2.3a0: 62011
2.4a0: 62041
2.4a3: 62051
2.4b1: 62061
2.5a0: 62071
2.5a0: 62081
2.5a0: 62091
2.5a0: 62092
2.5b3: 62101
2.5b3: 62111
2.5c1: 62121
2.5c2: 62131
2.6a0: 62151
2.6a1: 62161
2.7a0: 62171