__pycache__
というディレクトリがそろそろ気になってきた。
なんか気づいたらできてる。
なんなんだこれは。
以下で議論されていた。
python - What is __pycache__? - Stack Overflow
要点をまとめると。
- ファイルをインポートした際にできる
- python compiled(
.pyc
)ファイルが入ってる。pythonがコンパイルされたバイナリファイル。 - 役割としては、インポート時の読み込みを早くする。消しても問題ない。
- python3.2以降で
__pycache__
ディレクトリに入るようになった。それまでは実行ディレクトリ直下に.pyc
ファイルが作成されていた。
例えば、foo.py
を作成して、別スクリプトから
import foo
とかやると下記のように__pycache__/foo.cpython-37.pyc
が突如現れる。
$ tree __pycache__/ __pycache__/ └── foo.cpython-37.pyc
このファイルにはコンパイルして得られたバイトコードが保存されている。
こうしておけばimport foo
のコンパイルにかかる時間を節約できるって寸法。
要するにキャッシュなので無視していいファイル、無視した方が良いファイルみたい。
ちなみに
PYTHONDONTWRITEBYTECODE
環境変数でキャッシュを作成するか否かを制御できる。
作成したくない場合1
にしときましょう。
$ export PYTHONDONTWRITEBYTECODE=1