source: python/trunk/Doc/library/compileall.rst

Last change on this file was 391, checked in by dmik, 11 years ago

python: Merge vendor 2.7.6 to trunk.

  • Property svn:eol-style set to native
File size: 4.5 KB
RevLine 
[2]1:mod:`compileall` --- Byte-compile Python libraries
2===================================================
3
4.. module:: compileall
5 :synopsis: Tools for byte-compiling all Python source files in a directory tree.
6
7
8This module provides some utility functions to support installing Python
[391]9libraries. These functions compile Python source files in a directory tree.
10This module can be used to create the cached byte-code files at library
11installation time, which makes them available for use even by users who don't
12have write permission to the library directories.
[2]13
14
[391]15Command-line use
16----------------
[2]17
[391]18This module can work as a script (using :program:`python -m compileall`) to
19compile Python sources.
[2]20
[391]21.. program:: compileall
22
23.. cmdoption:: [directory|file]...
24
25 Positional arguments are files to compile or directories that contain
26 source files, traversed recursively. If no argument is given, behave as if
27 the command line was ``-l <directories from sys.path>``.
28
29.. cmdoption:: -l
30
31 Do not recurse into subdirectories, only compile source code files directly
32 contained in the named or implied directories.
33
34.. cmdoption:: -f
35
36 Force rebuild even if timestamps are up-to-date.
37
38.. cmdoption:: -q
39
40 Do not print the list of files compiled, print only error messages.
41
42.. cmdoption:: -d destdir
43
44 Directory prepended to the path to each file being compiled. This will
45 appear in compilation time tracebacks, and is also compiled in to the
46 byte-code file, where it will be used in tracebacks and other messages in
47 cases where the source file does not exist at the time the byte-code file is
48 executed.
49
50.. cmdoption:: -x regex
51
52 regex is used to search the full path to each file considered for
53 compilation, and if the regex produces a match, the file is skipped.
54
55.. cmdoption:: -i list
56
57 Read the file ``list`` and add each line that it contains to the list of
58 files and directories to compile. If ``list`` is ``-``, read lines from
59 ``stdin``.
60
61.. versionchanged:: 2.7
62 Added the ``-i`` option.
63
64
65Public functions
66----------------
67
68.. function:: compile_dir(dir[, maxlevels[, ddir[, force[, rx[, quiet]]]]])
69
[2]70 Recursively descend the directory tree named by *dir*, compiling all :file:`.py`
[391]71 files along the way.
72
73 The *maxlevels* parameter is used to limit the depth of the recursion; it
74 defaults to ``10``.
75
76 If *ddir* is given, it is prepended to the path to each file being compiled
77 for use in compilation time tracebacks, and is also compiled in to the
78 byte-code file, where it will be used in tracebacks and other messages in
79 cases where the source file does not exist at the time the byte-code file is
80 executed.
81
[2]82 If *force* is true, modules are re-compiled even if the timestamps are up to
83 date.
84
[391]85 If *rx* is given, its search method is called on the complete path to each
86 file considered for compilation, and if it returns a true value, the file
87 is skipped.
[2]88
[391]89 If *quiet* is true, nothing is printed to the standard output unless errors
90 occur.
[2]91
92
[391]93.. function:: compile_file(fullname[, ddir[, force[, rx[, quiet]]]])
94
95 Compile the file with path *fullname*.
96
97 If *ddir* is given, it is prepended to the path to the file being compiled
98 for use in compilation time tracebacks, and is also compiled in to the
99 byte-code file, where it will be used in tracebacks and other messages in
100 cases where the source file does not exist at the time the byte-code file is
101 executed.
102
103 If *rx* is given, its search method is passed the full path name to the
104 file being compiled, and if it returns a true value, the file is not
105 compiled and ``True`` is returned.
106
107 If *quiet* is true, nothing is printed to the standard output unless errors
108 occur.
109
110 .. versionadded:: 2.7
111
112
[2]113.. function:: compile_path([skip_curdir[, maxlevels[, force]]])
114
115 Byte-compile all the :file:`.py` files found along ``sys.path``. If
[391]116 *skip_curdir* is true (the default), the current directory is not included
117 in the search. All other parameters are passed to the :func:`compile_dir`
118 function. Note that unlike the other compile functions, ``maxlevels``
119 defaults to ``0``.
[2]120
121To force a recompile of all the :file:`.py` files in the :file:`Lib/`
122subdirectory and all its subdirectories::
123
124 import compileall
125
126 compileall.compile_dir('Lib/', force=True)
127
128 # Perform same compilation, excluding files in .svn directories.
129 import re
[391]130 compileall.compile_dir('Lib/', rx=re.compile(r'[/\\][.]svn'), force=True)
[2]131
132
133.. seealso::
134
135 Module :mod:`py_compile`
136 Byte-compile a single source file.
Note: See TracBrowser for help on using the repository browser.