32.11. compileall —バイトコンパイルPythonライブラリ—Pythonドキュメント
32.11。 compileall —Pythonライブラリのバイトコンパイル
ソースコード: :source: `Lib / compileall.py`
このモジュールは、Pythonライブラリのインストールをサポートするいくつかのユーティリティ関数を提供します。 これらの関数は、Pythonソースファイルをディレクトリツリーにコンパイルします。 このモジュールを使用すると、ライブラリのインストール時にキャッシュされたバイトコードファイルを作成できます。これにより、ライブラリディレクトリへの書き込み権限がないユーザーでも使用できるようになります。
32.11.1。 コマンドラインでの使用
このモジュールは、( python -m compileall を使用して)スクリプトとして機能し、Pythonソースをコンパイルできます。
- directory ...
file ...
- 位置引数は、コンパイルするファイル、または再帰的にトラバースされるソースファイルを含むディレクトリです。 引数が指定されていない場合は、コマンドラインが
-l <directories from sys.path>
であるかのように動作します。
- -l
- サブディレクトリに再帰せず、名前付きまたは暗黙のディレクトリに直接含まれているソースコードファイルのみをコンパイルします。
- -f
- タイムスタンプが最新であっても、強制的に再構築します。
- -q
- コンパイルされたファイルのリストを印刷せず、エラーメッセージのみを印刷します。
- -d destdir
- コンパイルされる各ファイルへのパスの前にディレクトリが追加されます。 これはコンパイル時のトレースバックに表示され、バイトコードファイルにもコンパイルされます。バイトコードファイルの実行時にソースファイルが存在しない場合は、トレースバックやその他のメッセージで使用されます。
- -x regex
- 正規表現は、コンパイルの対象となる各ファイルへのフルパスを検索するために使用され、正規表現が一致する場合、ファイルはスキップされます。
- -i list
- ファイル
list
を読み取り、ファイルに含まれる各行をコンパイルするファイルとディレクトリのリストに追加します。list
が-
の場合、stdin
から行を読み取ります。
バージョン2.7で変更: -i
オプションが追加されました。
32.11.2。 公の行事
- compileall.compile_dir(dir[, maxlevels[, ddir[, force[, rx[, quiet]]]]])
dir で指定されたディレクトリツリーを再帰的に下降し、途中ですべての
.py
ファイルをコンパイルします。maxlevels パラメーターは、再帰の深さを制限するために使用されます。 デフォルトは
10
です。ddir を指定すると、コンパイル時のトレースバックで使用するためにコンパイルされる各ファイルへのパスの前に追加され、バイトコードファイルにもコンパイルされてトレースバックなどで使用されます。バイトコードファイルの実行時にソースファイルが存在しない場合のメッセージ。
force がtrueの場合、タイムスタンプが最新であっても、モジュールは再コンパイルされます。
rx が指定されている場合、その検索メソッドは、コンパイルの対象となる各ファイルへの完全なパスで呼び出され、真の値を返す場合、ファイルはスキップされます。
quick がtrueの場合、エラーが発生しない限り、標準出力には何も出力されません。
- compileall.compile_file(fullname[, ddir[, force[, rx[, quiet]]]])
パスフルネームでファイルをコンパイルします。
ddir を指定すると、コンパイル時のトレースバックで使用するためにコンパイルされるファイルへのパスの前に追加され、バイトコードファイルにもコンパイルされてトレースバックなどで使用されます。バイトコードファイルの実行時にソースファイルが存在しない場合のメッセージ。
rx を指定すると、その検索メソッドにコンパイル中のファイルへのフルパス名が渡され、true値が返された場合、ファイルはコンパイルされず、
True
が返されます。quick がtrueの場合、エラーが発生しない限り、標準出力には何も出力されません。
バージョン2.7の新機能。
- compileall.compile_path([skip_curdir[, maxlevels[, force]]])
sys.path
に沿って見つかったすべての.py
ファイルをバイトコンパイルします。 skip_curdir がtrue(デフォルト)の場合、現在のディレクトリは検索に含まれません。 他のすべてのパラメーターは、 compile_dir()関数に渡されます。 他のコンパイル関数とは異なり、maxlevels
のデフォルトは0
であることに注意してください。
Lib/
サブディレクトリとそのすべてのサブディレクトリにあるすべての.py
ファイルの再コンパイルを強制するには:
import compileall
compileall.compile_dir('Lib/', force=True)
# Perform same compilation, excluding files in .svn directories.
import re
compileall.compile_dir('Lib/', rx=re.compile(r'[/\\][.]svn'), force=True)