blob: 04581918dbdc4f96463b9162749a6c88df1bdeff [file] [log] [blame]
\section{\module{py_compile} ---
Compile Python source files}
% Documentation based on module docstrings, by Fred L. Drake, Jr.
% <fdrake@acm.org>
\declaremodule[pycompile]{standard}{py_compile}
\modulesynopsis{Compile Python source files to byte-code files.}
\indexii{file}{byte-code}
The \module{py_compile} module provides a function to generate a
byte-code file from a source file, and another function used when the
module source file is invoked as a script.
Though not often needed, this function can be useful when installing
modules for shared use, especially if some of the users may not have
permission to write the byte-code cache files in the directory
containing the source code.
\begin{excdesc}{PyCompileError}
Exception raised when an error occurs while attempting to compile the file.
\end{excdesc}
\begin{funcdesc}{compile}{file\optional{, cfile\optional{, dfile\optional{, doraise}}}}
Compile a source file to byte-code and write out the byte-code cache
file. The source code is loaded from the file name \var{file}. The
byte-code is written to \var{cfile}, which defaults to \var{file}
\code{+} \code{'c'} (\code{'o'} if optimization is enabled in the
current interpreter). If \var{dfile} is specified, it is used as
the name of the source file in error messages instead of \var{file}.
If \var{doraise} = True, a PyCompileError is raised when an error is
encountered while compiling \var{file}. If \var{doraise} = False (the default),
an error string is written to sys.stderr, but no exception is raised.
\end{funcdesc}
\begin{funcdesc}{main}{\optional{args}}
Compile several source files. The files named in \var{args} (or on
the command line, if \var{args} is not specified) are compiled and
the resulting bytecode is cached in the normal manner. This
function does not search a directory structure to locate source
files; it only compiles files named explicitly.
\end{funcdesc}
When this module is run as a script, the \function{main()} is used to
compile all the files named on the command line.
\begin{seealso}
\seemodule{compileall}{Utilities to compile all Python source files
in a directory tree.}
\end{seealso}