|
1 :mod:`py_compile` --- Compile Python source files |
|
2 ================================================= |
|
3 |
|
4 .. module:: py_compile |
|
5 :synopsis: Generate byte-code files from Python source files. |
|
6 .. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org> |
|
7 .. documentation based on module docstrings |
|
8 |
|
9 .. index:: pair: file; byte-code |
|
10 |
|
11 The :mod:`py_compile` module provides a function to generate a byte-code file |
|
12 from a source file, and another function used when the module source file is |
|
13 invoked as a script. |
|
14 |
|
15 Though not often needed, this function can be useful when installing modules for |
|
16 shared use, especially if some of the users may not have permission to write the |
|
17 byte-code cache files in the directory containing the source code. |
|
18 |
|
19 |
|
20 .. exception:: PyCompileError |
|
21 |
|
22 Exception raised when an error occurs while attempting to compile the file. |
|
23 |
|
24 |
|
25 .. function:: compile(file[, cfile[, dfile[, doraise]]]) |
|
26 |
|
27 Compile a source file to byte-code and write out the byte-code cache file. The |
|
28 source code is loaded from the file name *file*. The byte-code is written to |
|
29 *cfile*, which defaults to *file* ``+`` ``'c'`` (``'o'`` if optimization is |
|
30 enabled in the current interpreter). If *dfile* is specified, it is used as the |
|
31 name of the source file in error messages instead of *file*. If *doraise* is |
|
32 true, a :exc:`PyCompileError` is raised when an error is encountered while |
|
33 compiling *file*. If *doraise* is false (the default), an error string is |
|
34 written to ``sys.stderr``, but no exception is raised. |
|
35 |
|
36 |
|
37 .. function:: main([args]) |
|
38 |
|
39 Compile several source files. The files named in *args* (or on the command |
|
40 line, if *args* is not specified) are compiled and the resulting bytecode is |
|
41 cached in the normal manner. This function does not search a directory |
|
42 structure to locate source files; it only compiles files named explicitly. |
|
43 |
|
44 When this module is run as a script, the :func:`main` is used to compile all the |
|
45 files named on the command line. The exit status is nonzero if one of the files |
|
46 could not be compiled. |
|
47 |
|
48 .. versionchanged:: 2.6 |
|
49 Added the nonzero exit status when module is run as a script. |
|
50 |
|
51 |
|
52 .. seealso:: |
|
53 |
|
54 Module :mod:`compileall` |
|
55 Utilities to compile all Python source files in a directory tree. |
|
56 |