py_compile.compile()

py_compile.compile(file, cfile=None, dfile=None, doraise=False)[source]

Byte-compile one Python source file to Python bytecode.

Arguments:

file: source filename cfile: target filename; defaults to source with ‘c’ or ‘o’ appended

(‘c’ normally, ‘o’ in optimizing mode, giving .pyc or .pyo)
dfile: purported filename; defaults to source (this is the filename
that will show up in error messages)
doraise: flag indicating whether or not an exception should be
raised when a compile error is found. If an exception occurs and this flag is set to False, a string indicating the nature of the exception will be printed, and the function will return to the caller. If an exception occurs and this flag is set to True, a PyCompileError exception will be raised.

Note that it isn’t necessary to byte-compile Python modules for execution efficiency – Python itself byte-compiles a module when it is loaded, and if it can, writes out the bytecode to the corresponding .pyc (or .pyo) file.

However, if a Python installation is shared between users, it is a good idea to byte-compile all modules upon installation, since other users may not be able to write in the source directories, and thus they won’t be able to write the .pyc/.pyo file, and then they would be byte-compiling every module each time it is loaded. This can slow down program start-up considerably.

See compileall.py for a script/module that uses this module to byte-compile all installed files (or all files in selected directories).