マジックナンバーは、ファイルの最初の数バイトがファイルタイプを示すマーカーを保持しているUNIXタイプのシステムに由来します。
Pythonは、pyc作成時に同様のマーカーをファイルに挿入します。
次に、Pythonインタープリターは、ロード時にこの数が正しいことを確認します。
このマジックナンバーに損傷を与えるものはすべて問題の原因になります。これには、pycファイルの編集、またはpycインタプリタとは異なるバージョンのpython(通常は後で)からを実行しようとすることが含まれます。
それらが自分の pycファイルである場合は、それらを削除して、インタープリターにpyファイルを再コンパイルさせます。UNIXタイプのシステムでは、次のような単純なものになります。
rm *.pyc
または:
find . -name '*.pyc' -delete
それらがあなたのものでない場合はpy、再コンパイルするファイルを入手するかpyc、特定のマジック値でファイルを実行できるインタープリターを入手する必要があります。
断続的な性質を引き起こしている可能性がある1つのこと。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