How can I compile Python script into bytecode

Klaus Alexander Seistrup spam at magnetic-ink.dk
Sat Jan 4 22:30:25 CET 2003


Shawn wrote:

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

>From within python:

#v+
>>> from py_compile import compile
>>> compile("name_of_script.py")
>>> print compile.__doc__
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)

    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).
>>>  
#v-

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

#v+
$ 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"
#v-


  // Klaus

-- 
 ><> 	vandag, môre, altyd saam




More information about the Python-list mailing list