32.11. compileall —バイトコンパイルPythonライブラリ—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/2.7/library/compileall
移動先:案内検索

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)

も参照してください

モジュール py_compile
単一のソースファイルをバイトコンパイルします。