How can I compile Python script into bytecode

Klaus Alexander Seistrup spam at
Sat Jan 4 22:30:25 CET 2003

Shawn wrote:

> How can I build a .pyc file from a source script?

>From within python:

>>> from py_compile import compile
>>> compile("")
>>> print compile.__doc__
Byte-compile one Python source file to Python bytecode.


    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)

    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 for a script/module that uses this module to
    byte-compile all installed files (or all files in selected

Or, if you're on a unix box and have a bunch of files to compile,
you could do this from a shell prompt:

$ cd /path/to/dir/with/python/scripts
$ compile='import py_compile, sys; py_compile.compile(sys.argv[1])'
$ find . -type f -name '*.py' | xargs -n 1 python -c "$compile"

  // Klaus

 ><> 	vandag, môre, altyd saam

More information about the Python-list mailing list