Il numero magico proviene da sistemi di tipo UNIX in cui i primi byte di un file contenevano un marcatore che indica il tipo di file.
Python inserisce un marcatore simile nei suoi pycfile quando li crea.
Quindi l'interprete python si assicura che questo numero sia corretto durante il caricamento.
Tutto ciò che danneggia questo numero magico causerà il tuo problema. Ciò include la modifica del pycfile o il tentativo di eseguire una pycversione diversa di Python (in genere successiva) rispetto all'interprete.
Se sono i tuoi pyc file, eliminali e lascia che l'interprete ricompili i pyfile. Sui sistemi di tipo UNIX, potrebbe essere qualcosa di semplice come:
rm *.pyc
o:
find . -name '*.pyc' -delete
Se non sono tuoi, dovrai ottenere i pyfile per la ricompilazione o un interprete in grado di eseguire i pycfile con quel particolare valore magico.
Una cosa che potrebbe causare la natura intermittente. Ciò pycche causa il problema può essere importato solo a determinate condizioni. È altamente improbabile che a volte venga importato. Dovresti controllare la traccia dello stack completo quando l'importazione non riesce?
Per inciso, la prima parola di tutti i miei 2.5.1(r251:54863) pycfile è 62131, 2.6.1(r261:67517)è 62161. L'elenco di tutti i numeri magici è disponibile in Python/import.c, riprodotto qui per completezza (attuale come al momento della pubblicazione della risposta, potrebbe essere cambiato da allora):
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