30.9 compileall -- Pythonライブラリをバイトコンパイル

このモジュールは、指定したディレクトリに含まれるPythonソースをコンパイル する関数を定義しています。Pythonライブラリをインストールする時、ソースフ ァイルを事前にコンパイルしておく事により、ライブラリのインストール先ディ レクトリに書き込み権限をもたないユーザでもキャッシュされたバイトコードフ ァイルを利用する事ができるようになります。

このモジュールのソースコードは、Pytonソースファイルをコンパイルするスク リプトとしても利用する事ができます。コンパイルするディレクトリは、 sys.pathで指定されたディレクトリ、またはコマンドラインで指定され たディレクトリとなります。

compile_dir( dir[, maxlevels[, ddir[, force[, rx[, quiet]]]]])

dirで指定されたディレクトリを再帰的に下降し、見つかった .pyを全てコンパイルします。maxlevelsは、下降する最大の深 さ(デフォルトは10)を指定します。ddirには、エラーメッ セージで使用されるファイル名の、親ディレクトリ名を指定する事ができま す。forceが真の場合、モジュールはファイルの更新日付に関わりなく 再コンパイルされます。

rxには、検索対象から除外するファイル名の正規表現式を指定します。 絶対パス名をこの正規表現でsearchし、一致した場合にはコンパイル 対象から除外します。

quietが真の場合、通常処理では標準出力に何も表示しません。

compile_path( [skip_curdir[, maxlevels[, force]]])

sys.pathに含まれる、全ての.pyファイルをバイトコンパイル します。skip_curdirが真(デフォルト)の時、カレントディレクトリ は検索されません。maxlevelsforceはデフォルトでは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)

参考:

py_compile:モジュール
Byte-compile a single source file.
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。