Pythonのpycファイルってなんぞ?

Pythonでスクリプトを実行すると、”__pycache__”フォルダに拡張子が”.pyc”のファイルができる。いったいこれはなに?消してもいいの?しらべてみました!

pycファイルとは

Pythonのソースコードをコンパイルした結果のバイトコードを含むファイルで、このファイルがあることでコンパイル時間が短縮される。(いわゆるキャッシュファイル)

たとえばソースコードのファイル名が”sample.py”で、pythonのバージョンが3.11だったとすると、生成されるpycファイル名は”sample.cpython-311.pyc”となる。

pycファイルが生成されるタイミング

以下の2通りがあるようだ。

  1. 初回のコンパイル時。厳密にいうと初回のモジュールインポート時。
    ファイル名が同じままソースコードの中身を更新するとpycファイルも更新され上書きされる。
  2. pythonのバージョンが変わった時。厳密にいうとモジュールのバージョンが変わった時。
    最近だとpython3.10からpython3.11に更新した際に、pycファイルが新たに生成された。

pycファイル(と”__pycache__”フォルダ)を生成させない方法

実行時に”-B”オプションを指定することでキャッシュ機能がOFFになる。たとえば、

> python -B sample.py

pycファイル(と”__pycache__”フォルダ)は削除してもいいのか?

コンパイル時間が長くなるだけで消しても問題ない。