.pycファイルを作成させない方法メモ
Python に Bオプションを付けるか、環境変数 PYTHONDONTWRITEBYTECODE を作ると .pycファイルが作成されなくなる。
具体的には
python -B foo.py
のように実行するか、
:: Windows cmd の場合 set PYTHONDONTWRITEBYTECODE=1 foo.py # Linux bash の場合 export PYTHONDONTWRITEBYTECODE=1 ./foo.py
のように事前に環境変数を設定しておく。
そもそも .pyc ファイルとは?
Python で書かれたモジュールを import すると自動的に .pycファイルが作成される。
例えば
import bar
とやると bar.py と同じディレクトリに bar.pyc というファイルができる。
このファイルは bar.py をコンパイルして得られたバイトコードを保存したものだ。つまり一種のキャッシュである。モジュールは他のファイルからも import される可能性が高いので、こうしておけばコンパイルする時間を節約できる。
人によってはこの動作が邪魔という人もいる。例えば、普段は Python 2.7 を使っているのだが、一時的に 2.6 を使うといった場合だ。.pycファイルはバージョン間の互換性がないので、他のバージョンの Python でスクリプトを実行するとキャッシュが上書きされてしまう。
Python 3.2 から新しい仕組みができた
Python 3.2 から .pycファイルは __pycache__ というディレクトリに、バージョン番号付きで保存されるようになったので、キャッシュが衝突したり、フォルダーがごちゃごちゃになったりすることはなくなった。