### Navigation

- index
- modules |
- next |
- previous |
- Python v3.1 documentation »
- The Python Standard Library »
- 30. Python Language Services »

# 30.11. `compileall` — Byte-compile Python libraries

This module provides some utility functions to support installing Python libraries. These functions compile Python source files in a directory tree, allowing users without permission to write to the libraries to take advantage of cached byte-code files.

This module may also be used as a script (using the -m Python flag) to compile Python sources. Directories to recursively traverse (passing -l stops the recursive behavior) for sources are listed on the command line. If no arguments are given, the invocation is equivalent to `-l sys.path`. Printing lists of the files compiled can be disabled with the -q flag. In addition, the -x option takes a regular expression argument. All files that match the expression will be skipped.

`compileall.``compile_dir`(dir, maxlevels=10, ddir=None, force=False, rx=None, quiet=False)

  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 used as the base path from which the filenames used in error messages will be generated. If force is true, modules are re-compiled even if the timestamps are up to date.

  If rx is given, it specifies a regular expression of file names to exclude from the search; that expression is searched for in the full path.

  If quiet is true, nothing is printed to the standard output in normal operation.

`compileall.``compile_path`(skip_curdir=True, maxlevels=0, force=False)
  Byte-compile all the `.py` files found along `sys.path`. If skip_curdir is true (the default), the current directory is not included in the search. The maxlevels and force parameters default to `0` and are passed to the `compile_dir()` function.

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)

See also

Module `py_compile`
  Byte-compile a single source file.

### Navigation

- index
- modules |
- next |
- previous |
- Python v3.1 documentation »
- The Python Standard Library »
- 30. Python Language Services »