This module provides some utility functions to support installing Python libraries. These functions compile Python source files in a directory tree. This module can be used to create the cached byte-code files at library installation time, which makes them available for use even by users who don’t have write permission to the library directories.
This module can work as a script (using python -m compileall) to compile Python sources.
Recursively descend the directory tree named by dir, compiling all .py files along the way.
The maxlevels parameter is used to limit the depth of the recursion; it defaults to 10.
If ddir is given, it is prepended to the path to each file being compiled for use in compilation time tracebacks, and is also compiled in to the byte-code file, where it will be used in tracebacks and other messages in cases where the source file does not exist at the time the byte-code file is executed.
If force is true, modules are re-compiled even if the timestamps are up to date.
If rx is given, its search method is called on the complete path to each file considered for compilation, and if it returns a true value, the file is skipped.
If quiet is true, nothing is printed to the standard output unless errors occur.
To force a recompile of all the .py files in the Lib/ subdirectory and all its subdirectories:
import compileall compileall.compile_dir('Lib/', force=True) # Perform same compilation, excluding files in .svn directories. import re compileall.compile_dir('Lib/', rx=re.compile('/[.]svn'), force=True)