summaryrefslogtreecommitdiffstats
path: root/Doc/lib/libpycompile.tex
blob: a28b4fe5e01f4961521bf4c14ea98bf458421a25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
\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{funcdesc}{compile}{file\optional{, cfile\optional{, dfile}}}
  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}. 
\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}