Le nombre magique provient de systèmes de type UNIX où les premiers octets d'un fichier contenaient un marqueur indiquant le type de fichier.
Python place un marqueur similaire dans ses pycfichiers lorsqu'il les crée.
L'interpréteur python s'assure ensuite que ce nombre est correct lors du chargement.
Tout ce qui endommage ce nombre magique causera votre problème. Cela inclut la modification du pycfichier ou la tentative d'exécution d'un à pycpartir d'une version différente de python (généralement plus tard) que votre interprète.
Si ce sont vos pyc fichiers, supprimez-les et laissez l'interprète recompiler les pyfichiers. Sur les systèmes de type UNIX, cela pourrait être quelque chose d'aussi simple que:
rm *.pyc
ou:
find . -name '*.pyc' -delete
S'ils ne vous appartiennent pas, vous devrez soit récupérer les pyfichiers à recompiler, soit utiliser un interpréteur capable d'exécuter les pycfichiers avec cette valeur magique particulière.
Une chose qui pourrait être à l'origine de la nature intermittente. Ce pycqui cause le problème ne peut être importé que sous certaines conditions. Il est très peu probable qu'il soit importé parfois. Vous devez vérifier la trace réelle de la pile complète lorsque l'importation échoue?
En passant, le premier mot de tous mes 2.5.1(r251:54863) pycfichiers est 62131, 2.6.1(r261:67517)est 62161. La liste de tous les nombres magiques se trouve dans Python/import.c, reproduite ici pour être complète (à jour au moment où la réponse a été publiée, elle peut avoir changé depuis):
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