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