Магическое число происходит из систем типа 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