Магічне число походить від систем UNIX-типу, де перші кілька байтів файлу містили маркер із зазначенням типу файлу.
Python ставить подібний маркер у свої pycфайли під час їх створення.
Тоді інтерпретатор python переконує, що це число правильне при завантаженні.
Все, що пошкодить це магічне число, спричинить вашу проблему. Сюди входить редагування pycфайлу або спроба запускуpyc з іншої версії python (зазвичай пізніше), ніж ваш інтерпретатор.
Якщо це ваші pyc файли, просто видаліть їх і дозвольте перекладачеві перекомпілювати pyфайли. У системах типу UNIX це може бути настільки просто, як:
rm *.pyc
або:
find . -name '*.pyc' -delete
Якщо вони не є вашими, вам доведеться або отримати pyфайли для повторної компіляції, або інтерпретатор, який може запускати pycфайли саме з цим магічним значенням.
Одне, що може викликати переривчастий характер. Це pycє причиною проблеми, яку можна імпортувати лише за певних умов. Це малоймовірно, що воно іноді імпортуватиме. Ви повинні перевірити фактичний повний слід стека, коли імпорт не вдається?
Як і в сторону, то перше слово з усіх моїх 2.5.1(r251:54863) pycфайлів 62131, 2.6.1(r261:67517)є 62161. Список усіх магічних чисел можна знайти Python/import.c, відтворений тут для повноти (поточний, як на момент опублікування відповіді, можливо, з тих пір змінився):
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