:mod:`py_compile` --- Python ソースファイルのコンパイル
=======================================================

.. module:: py_compile
   :synopsis: Python ソースファイルからバイトコードファイルを生成する。
.. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
.. documentation based on module docstrings



.. index:: pair: file; byte-code

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

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


.. exception:: PyCompileError

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


.. function:: compile(file[, cfile[, dfile[, doraise]]])

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


.. function:: main([args])

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

このモジュールがスクリプトとして実行されると、
:func:`main` がコマンドラインで指定されたファイルを全てコンパイルします。
一つでもコンパイルできないファイルがあると終了ステータスが 0 でない値になります。

.. versionchanged:: 2.6
   モジュールがスクリプトとして実行された場合の 0 でない終了ステータスが追加された。


.. seealso::

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

