
pycacheフォルダと中に user.cpython-313.pycが自動で作られる
__pycache__
フォルダと user.cpython-313.pyc
は、Pythonが自動で作ったキャッシュファイルです。Pythonはプログラムを実行するときに、.py
ファイル(テキスト)をそのまま読むのではなく、「バイトコード(機械が理解しやすい中間形式)」に一度変換して実行します。
その「変換済みのデータ」を保存しておくのが__pycache__
フォルダにある .pyc
ファイル です。
例で説明
user.py
を最初に読み込んだときPythonは次のことをします。
user.py
を読み取る- コンピュータが理解しやすい形式(バイトコード)に変換する
- 実行する
- 次回以降の起動を早くするために、変換結果を
__pycache__/user.cpython-313.pyc
に保存する
次にまた同じ user.py
を実行すると、Pythonは「中身が前と同じだ」と確認して .pyc
を再利用し、起動が少し早くなります。
ファイル名の意味
user.cpython-313.pyc
の意味:
部分 | 意味 |
---|---|
user | 元のPythonファイル名 |
cpython | 実行しているPythonの種類(CPython) |
313 | Pythonのバージョン 3.13 |
.pyc | コンパイル済みファイル(Compiled Python) |
消してもOK
__pycache__
はあくまでキャッシュなので、削除しても
次にプログラムを実行したときに自動でまた作り直されます。
セキュリティ的な注意点
__pycache__
フォルダはGitHubなどにアップしないようにしましょう。
→.gitignore
に__pycache__/
と書いておくのが普通です。.pyc
ファイルにはソースコードの情報がほぼ残っているので、
公開リポジトリなどでは削除しておくのが安全です。
Pythonの動き
uvicorn app.main:app --reload
でサーバーを起動- Pythonが
app/main.py
やapp/routes/user.py
を読み込む - 実行速度を上げるために、コードを
.pyc
に変換して保存 - 次回以降の起動では
.pyc
を読み込むから少し速くなる
開発中に「なんかキャッシュが壊れてる?」と思ったら、__pycache__
フォルダを削除して再実行すればOKです。
放置する場合
- Pythonが自動的に使ってくれるので、少しだけ起動が速くなります。
- Gitなどにアップロードするときは
.gitignore
に入れておくのが普通です(他の環境では再生成されるため不要)。
削除する場合:
- 次に
uvicorn
やpython main.py
を実行したときにPythonがまた自動で新しい.pyc
を作ります。 - 安全に削除できます。
- 時々フォルダ整理や挙動の不一致(古いキャッシュの影響)が気になるときに削除します。