cx_Freeze 3.0

Anthony Tuininga anthony at computronix.com
Thu Sep 23 16:54:20 CEST 2004


What is cx_Freeze?

cx_Freeze is a set of utilities for freezing Python scripts into
executables using many of the techniques found in Thomas Heller's
py2exe, Gordon McMillan's Installer and the Freeze utility that ships
with Python itself.


Where do I get it?

http://starship.python.net/crew/atuining
http://www.computronix.com/utilities.shtml
(it may be a few days before the second site is updated)


What's new?
  1) cx_Freeze now requires Python 2.3 or higher since it takes
     advantage of the ability of Python 2.3 and higher to import
     modules from zip files. This makes the freezing process
     considerably simpler and also allows for the execution of
     multiple frozen packages (such as found in COM servers or
     shared libraries) without requiring modification to the Python
     modules.
  2) All external dependencies have been removed. cx_Freeze now
     only requires a standard Python distribution to do its work.
  3) Added the ability to define the initialization scripts that
     cx_Freeze uses on startup of the frozen program. Previously, these
     scripts were written in C and could not easily be changed; now they
     are written in Python and can be found in the initscripts directory
     (and chosen with the new --init-script option to FreezePython).
  4) The base executable ConsoleSetLibPath has been removed and
     replaced with the initscript ConsoleSetLibPath.
  5) Removed base executables for Win32 services and Win32 COM
     servers. This functionality will be restored in the future but it is
     not currently in a state that is ready for release. If this
     functionality is required, please use py2exe or contact me for my
     work in progress.
  6) The attribute sys.frozen is now set so that more recent pywin32
     modules work as expected when frozen.
  7) Added option --include-path to FreezePython to allow overriding
     of sys.path without modifying the environment variable PYTHONPATH.
  8) Added option --target-dir/--install-dir to specify the directory in
     which the frozen executable and its dependencies will be placed.
  9) Removed the option --shared-lib since it was used for building
     shared libraries and can be managed with the initscript
     SharedLib.py.
10) MakeFrozenBases.py now checks the platform specific include
     directory as requested by Michael Partridge.
11) Added option -O (or -OO) to FreezePython to set the optimization
     used when generating bytecode.
12) Improve the extension loader so that an ImportError is raised
     when the dynamic module is not located; otherwise an error
     about missing attributes is raised instead.
13) Extension loaders are only created when copying dependencies
     since the normal module should be loadable in the situation
     where a Python installation is available.
14) Allow for using a compiler other than gcc for building the frozen
     base executables by setting the environment variable CC.
15) Added support for replacing the paths in all frozen modules with
     something else (so that for example the path of the machine on
     which the freezing was done is not displayed in tracebacks)

For those who used the betas over the past couple of months, here is 
what is new since 3.0 beta 3.

  1) Ensure that ldd is only run on extension modules.
  2) Allow for using a compiler other than gcc for building the frozen
     base executables by setting the environment variable CC.
  3) Ensure that the import lock is not held while executing the main
     script; otherwise, attempts to import a module within a thread will
     hang that thread as noted by Roger Binns.
  4) Added support for replacing the paths in all frozen modules with
     something else (so that for example the path of the machine on which
     the freezing was done is not displayed in tracebacks)

-- 
Anthony Tuininga
anthony at computronix.com

Computronix
Distinctive Software. Real People.
Suite 200, 10216 - 124 Street NW
Edmonton, AB, Canada  T5N 4A3
Phone:	(780) 454-3700
Fax:	(780) 454-3838
http://www.computronix.com



More information about the Python-announce-list mailing list