<!DOCTYPE html PUBLIC
"-//W3C//DTD HTML 4.0 Transitional//EN">
<link rel=
"STYLESHEET" href=
"lib.css" type='text/css'
/>
<link rel=
"SHORTCUT ICON" href=
"../icons/pyfav.png" type=
"image/png" />
<link rel='start' href='../index.html' title='Python Documentation Index'
/>
<link rel=
"first" href=
"lib.html" title='Python Library Reference'
/>
<link rel='contents' href='contents.html'
title=
"Contents" />
<link rel='index' href='genindex.html' title='Index'
/>
<link rel='last' href='about.html' title='About this document...'
/>
<link rel='help' href='about.html' title='About this document...'
/>
<link rel=
"next" href=
"module-compileall.html" />
<link rel=
"prev" href=
"module-pyclbr.html" />
<link rel=
"parent" href=
"language.html" />
<link rel=
"next" href=
"module-compileall.html" />
<meta name='aesop' content='information'
/>
<title>18.8 py_compile -- Compile Python source files
</title>
<div id='top-navigation-panel' xml:id='top-navigation-panel'
>
<table align=
"center" width=
"100%" cellpadding=
"0" cellspacing=
"2">
<td class='online-navigation'
><a rel=
"prev" title=
"18.7.2 Function Descriptor Objects"
href=
"pyclbr-function-objects.html"><img src='../icons/previous.png'
border='
0' height='
32' alt='Previous Page' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"parent" title=
"18. Python Language Services"
href=
"language.html"><img src='../icons/up.png'
border='
0' height='
32' alt='Up One Level' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"next" title=
"18.9 compileall "
href=
"module-compileall.html"><img src='../icons/next.png'
border='
0' height='
32' alt='Next Page' width='
32'
/></A></td>
<td align=
"center" width=
"100%">Python Library Reference
</td>
<td class='online-navigation'
><a rel=
"contents" title=
"Table of Contents"
href=
"contents.html"><img src='../icons/contents.png'
border='
0' height='
32' alt='Contents' width='
32'
/></A></td>
<td class='online-navigation'
><a href=
"modindex.html" title=
"Module Index"><img src='../icons/modules.png'
border='
0' height='
32' alt='Module Index' width='
32'
/></a></td>
<td class='online-navigation'
><a rel=
"index" title=
"Index"
href=
"genindex.html"><img src='../icons/index.png'
border='
0' height='
32' alt='Index' width='
32'
/></A></td>
<div class='online-navigation'
>
<b class=
"navlabel">Previous:
</b>
<a class=
"sectref" rel=
"prev" href=
"pyclbr-function-objects.html">18.7.2 Function Descriptor Objects
</A>
<b class=
"navlabel">Up:
</b>
<a class=
"sectref" rel=
"parent" href=
"language.html">18. Python Language Services
</A>
<b class=
"navlabel">Next:
</b>
<a class=
"sectref" rel=
"next" href=
"module-compileall.html">18.9 compileall
</A>
<!--End of Navigation Panel-->
<H1><A NAME=
"SECTION0020800000000000000000">
18.8 <tt class=
"module">py_compile
</tt> --
Compile Python source files
</A>
<A NAME=
"module-pycompile"></A>
<a id='l2h-
4993' xml:id='l2h-
4993'
></a>The
<tt class=
"module">py_compile
</tt> 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.
<dl><dt><b><span class=
"typelabel">exception
</span> <tt id='l2h-
4994' xml:id='l2h-
4994'
class=
"exception">PyCompileError
</tt></b></dt>
Exception raised when an error occurs while attempting to compile the file.
<dl><dt><table cellpadding=
"0" cellspacing=
"0"><tr valign=
"baseline">
<td><nobr><b><tt id='l2h-
4995' xml:id='l2h-
4995'
class=
"function">compile
</tt></b>(
</nobr></td>
<td><var>file
</var><big>[
</big><var>, cfile
</var><big>[
</big><var>, dfile
</var><big>[
</big><var>, doraise
</var><big>]
</big><var></var><big>]
</big><var></var><big>]
</big><var></var>)
</td></tr></table></dt>
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
</var>. The
byte-code is written to
<var>cfile
</var>, which defaults to
<var>file
</var>
<code>+
</code> <code>'c'
</code> (
<code>'o'
</code> if optimization is enabled in the
current interpreter). If
<var>dfile
</var> is specified, it is used as
the name of the source file in error messages instead of
<var>file
</var>.
If
<var>doraise
</var> = True, a PyCompileError is raised when an error is
encountered while compiling
<var>file
</var>. If
<var>doraise
</var> = False (the default),
an error string is written to sys.stderr, but no exception is raised.
<dl><dt><table cellpadding=
"0" cellspacing=
"0"><tr valign=
"baseline">
<td><nobr><b><tt id='l2h-
4996' xml:id='l2h-
4996'
class=
"function">main
</tt></b>(
</nobr></td>
<td><var></var><big>[
</big><var>args
</var><big>]
</big><var></var>)
</td></tr></table></dt>
Compile several source files. The files named in
<var>args
</var> (or on
the command line, if
<var>args
</var> 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.
When this module is run as a script, the
<tt class=
"function">main()
</tt> is used to
compile all the files named on the command line.
<p class=
"heading">See Also:
</p>
<dl compact=
"compact" class=
"seemodule">
<dt>Module
<b><tt class=
"module"><a href=
"module-compileall.html">compileall
</a></tt>:
</b>
<dd>Utilities to compile all Python source files
<div class='online-navigation'
>
<table align=
"center" width=
"100%" cellpadding=
"0" cellspacing=
"2">
<td class='online-navigation'
><a rel=
"prev" title=
"18.7.2 Function Descriptor Objects"
href=
"pyclbr-function-objects.html"><img src='../icons/previous.png'
border='
0' height='
32' alt='Previous Page' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"parent" title=
"18. Python Language Services"
href=
"language.html"><img src='../icons/up.png'
border='
0' height='
32' alt='Up One Level' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"next" title=
"18.9 compileall "
href=
"module-compileall.html"><img src='../icons/next.png'
border='
0' height='
32' alt='Next Page' width='
32'
/></A></td>
<td align=
"center" width=
"100%">Python Library Reference
</td>
<td class='online-navigation'
><a rel=
"contents" title=
"Table of Contents"
href=
"contents.html"><img src='../icons/contents.png'
border='
0' height='
32' alt='Contents' width='
32'
/></A></td>
<td class='online-navigation'
><a href=
"modindex.html" title=
"Module Index"><img src='../icons/modules.png'
border='
0' height='
32' alt='Module Index' width='
32'
/></a></td>
<td class='online-navigation'
><a rel=
"index" title=
"Index"
href=
"genindex.html"><img src='../icons/index.png'
border='
0' height='
32' alt='Index' width='
32'
/></A></td>
<div class='online-navigation'
>
<b class=
"navlabel">Previous:
</b>
<a class=
"sectref" rel=
"prev" href=
"pyclbr-function-objects.html">18.7.2 Function Descriptor Objects
</A>
<b class=
"navlabel">Up:
</b>
<a class=
"sectref" rel=
"parent" href=
"language.html">18. Python Language Services
</A>
<b class=
"navlabel">Next:
</b>
<a class=
"sectref" rel=
"next" href=
"module-compileall.html">18.9 compileall
</A>
<span class=
"release-info">Release
2.4.2, documentation updated on
28 September
2005.
</span>
<!--End of Navigation Panel-->
See
<i><a href=
"about.html">About this document...
</a></i> for information on suggesting changes.