このモジュールは、指定したディレクトリに含まれるPythonソースをコンパイル する関数を定義しています。Pythonライブラリをインストールする時、ソースフ ァイルを事前にコンパイルしておく事により、ライブラリのインストール先ディ レクトリに書き込み権限をもたないユーザでもキャッシュされたバイトコードフ ァイルを利用する事ができるようになります。
このモジュールのソースコードは、Pytonソースファイルをコンパイルするスク
リプトとしても利用する事ができます。コンパイルするディレクトリは、
sys.path
で指定されたディレクトリ、またはコマンドラインで指定され
たディレクトリとなります。
dir[, maxlevels[, ddir[, force[, rx[, quiet]]]]]) |
dirで指定されたディレクトリを再帰的に下降し、見つかった
.pyを全てコンパイルします。maxlevelsは、下降する最大の深
さ(デフォルトは10
)を指定します。ddirには、エラーメッ
セージで使用されるファイル名の、親ディレクトリ名を指定する事ができま
す。forceが真の場合、モジュールはファイルの更新日付に関わりなく
再コンパイルされます。
rxには、検索対象から除外するファイル名の正規表現式を指定します。
絶対パス名をこの正規表現でsearch
し、一致した場合にはコンパイル
対象から除外します。
quietが真の場合、通常処理では標準出力に何も表示しません。
[skip_curdir[, maxlevels[, force]]]) |
sys.path
に含まれる、全ての.pyファイルをバイトコンパイル
します。skip_curdirが真(デフォルト)の時、カレントディレクトリ
は検索されません。maxlevelsとforceはデフォルトでは0
で、compile_dir()に渡されます。
Lib/ディレクトリ以下にある全ての.pyファイルを強制的にリコンパイル するには、以下のようにします:
import compileall compileall.compile_dir('Lib/', force=True) # .svnディレクトリにあるファイルをのぞいて同じことをするにはこのようにします。 import re compileall.compile_dir('Lib/', rx=re.compile('/[.]svn'), force=True)
参考: