\section{\module{py_compile} ---
Pythonソースファイルのコンパイル}


\declaremodule[pycompile]{standard}{py_compile}

\modulesynopsis{
Pythonソースファイルをバイトコードファイルへコンパイル。}


\indexii{file}{byte-code}
\module{py_compile}モジュールには、ソースファイルからバイトコードファイ
ルを作る関数と、モジュールのソースファイルがスクリプトとして呼び出される
時に使用される関数が定義されています。

頻繁に必要となるわけではありませんが、共有ライブラリとしてモジュールをイ
ンストールする場合や、特にソースコードのあるディレクトリにバイトコードの
キャッシュファイルを書き込む権限がないユーザがいるときには、この関数は役
に立ちます。

\begin{excdesc}{PyCompileError}
ファイルをコンパイル中にエラーが発生すると、PyCompileError例外が送出されます。
\end{excdesc}

\begin{funcdesc}{compile}{file\optional{, cfile\optional{, dfile\optional{, doraise}}}}
ソースファイルをバイトコードにコンパイルして、バイトコードのキャッシュ
ファイルに書き出します。
ソースコードはファイル名\var{file}で渡します。
バイトコードはファイル\var{cfile}に書き込まれ、デフォルトでは\var{file}
\code{+} \code{'c'}（使用しているインタープリタで最適化が可能なら
\code{'o'}）です。
もし\var{dfile}が指定されたら、\var{file}の代わりにソースファイルの名前
としてエラーメッセージの中で使われます。
\var{doraise} が Trueの場合、コンパイル中にエラーが発生すると \exception{PyCompileError}
を送出します。\var{doraise} がFalseの場合(デフォルト)はエラーメッセージは
\code{sys.stderr}に出力し、例外は送出しません。
\end{funcdesc}


\begin{funcdesc}{main}{\optional{args}}
いくつか複数のソースファイルをコンパイルします。
\var{args}で（あるいは\var{args}で指定されなかったらコマンドラインで）指
定されたファイルをコンパイルし、できたバイトコードを通常の方法で保存しま
す。
この関数はソースファイルの存在するディレクトリを検索しません；指定された
ファイルをコンパイルするだけです。
\end{funcdesc}

このモジュールがスクリプトとして実行されると、\function{main()}がコマン
ドラインで指定されたファイルを全てコンパイルします。

\begin{seealso}
  \seemodule{compileall}{
ディレクトリツリー内のPythonソースファイルを全てコンパイルするライブラリ。}
\end{seealso}
