例えば、以下のようなモジュールをimportするPythonスクリプトがあったとして…
#!/usr/bin/python # -*- coding: utf-8 -*- import hoge print 'Hello World!'
インポートされる側。
#!/usr/bin/python # -*- coding: utf-8 -*- print 'hoge'
これを実行すると、モジュール(インポートされる側)のバイトコードファイル(.pycファイル)が生成されます。
$ python hello.py hoge Hello World! $ ll 〜省略〜 -rw-rw-r-- 1 xxxxx xxxxx 77 2012-04-01 23:28 hello.py -rw-rw-r-- 1 xxxxx xxxxx 56 2012-04-01 23:28 hoge.py -rw-rw-r-- 1 xxxxx xxxxx 143 2012-04-01 23:35 hoge.pyc
これですね。
-rw-rw-r-- 1 xxxxx xxxxx 143 2012-04-01 23:35 hoge.pyc
Pythonを日常的に使うプログラマからすれば、このファイルが生成されるのはきっと当たり前なのでしょうが、個人的にはこれが抑止できたらいいなーと思っていました。
どうやら、pythonコマンドのオプションで制御できるようです。
python -h usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ... Options and arguments (and corresponding environment variables): -B : don't write .py[co] files on import; also PYTHONDONTWRITEBYTECODE=x 〜省略〜
というわけで、「-B」オプションです。
早速、pycファイルを削除して再度実行!
$ rm hoge.pyc
$ python -B hello.py
hoge
Hello World!
今度は、pycファイルが生成されていません。
$ ll 〜省略〜 -rw-rw-r-- 1 xxxxx xxxxx 77 2012-04-01 23:28 hello.py -rw-rw-r-- 1 xxxxx xxxxx 56 2012-04-01 23:28 hoge.py
今度から活用しましょ〜っと。