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