PR

【Django】 EOFError: marshal data too short エラー

python-requirement Django
この記事は約2分で読めます。
記事内に広告が含まれています。

この記事では Django での開発時の、 EOFError: marshal data too short エラーの解消法を備忘録として紹介します。

エラーの原因(の可能性)

Python はコードをコンパイルして .pyc ファイル(バイトコード)を生成します。

このファイルが壊れている場合、このエラーが発生する可能性があります。

私の発生時は、 docker でかなり違うバージョンの2つのブランチを切り替えて起動した際に発生しました。

エラーの解消方法

私の場合は、pycache ディレクトリを削除することで解消しました。

Django プロジェクト内のすべての pycache ディレクトリと .pyc ファイルを削除することで、不整合状態が解消されたと考えられます。

スポンサーリンク

macOS の場合、以下のコマンドで一括削除できます。

find . -name "__pycache__" -exec rm -rf {} +
find . -name "*.pyc" -exec rm -rf {} +

イメージとしては、キャッシュのクリアに近いです。

おわりに

このようなエラー時は切り分けが重要です。

今まで動作していたのに突然生じたら、コードの問題である可能性は低いです。

キャッシュや設定ファイルをまずは疑うのが近道かもしれません。

コメント

タイトルとURLをコピーしました