# 18.8 `py_compile` -- Pythonソースファイルのコンパイル

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

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

exception `PyCompileError`
  ファイルをコンパイル中にエラーが発生すると、PyCompileError例外が送出されます。

`compile`( | file[, cfile[, dfile[, doraise]]])

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

`main`( | [args])

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

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

参考資料:

`compileall`モジュール:
  ディレクトリツリー内のPythonソースファイルを全てコンパイルするライブラリ。.