cx_Freeze 4.0

Anthony Tuininga anthony.tuininga at
Tue Sep 2 00:10:49 CEST 2008

What is cx_Freeze?

cx_Freeze is a set of scripts and modules for freezing Python scripts
into executables in much the same way that py2exe and py2app do. It
requires Python 2.3 or higher since it makes use of the zip import
facility which was introduced in that version.

Where do I get it?

What's new?

This release marks a significant change in functionality. Any feedback
is appreciated.

Changes from 4.0b1 to 4.0
1) Added support for copying files to the target directory.
2) Added support for a hook that runs when a module is missing.
3) Added support for binary path includes as well as excludes; use
sequences rather than dictionaries as a more convenient API; exclude
the standard locations for 32-bit and 64-bit libaries in
multi-architecture systems.
4) Added support for searching zip files (egg files) for modules.
5) Added support for handling system exit exceptions similarly to what
Python does itself as requested by Sylvain.
6) Added code to wait for threads to shut down like the normal Python
interpreter does. Thanks to Mariano Disanzo for discovering this
7) Hooks added or modified based on feedback from many people.
8) Don't include the version name in the display name of the MSI.
9) Use the OS dependent path normalization routines rather than simply
use the lowercase value as on Unix case is important; thanks to Artie
Eoff for pointing this out.
10) Include a version attribute in the cx_Freeze package and display
it in the output for the --version option to the script.
11) Include build instructions as requested by Norbert Sebok.
12) Add support for copying files when modules are included which
require data files to operate properly; add support for copying the
necessary files for the Tkinter and matplotlib modules.
13) Handle deferred imports recursively as needed; ensure that from
lists do not automatically indicate that they are part of the module
or the deferred import processing doesn't actually work!
14) Handle the situation where a module imports everything from a
package and the __all__ variable has been defined but the package has
not actually imported everything in the __all__ variable during
15) Modified license text to more closely match the Python Software
Foundation license as was intended.
16) Added sample script for freezing an application using matplotlib.
17) Renamed freeze to cxfreeze to avoid conflict with another package
that uses that executable as requested by Siegfried Gevatter.

Changes from 3.0.3 to 4.0b1
1) Added support for placing modules in or in a separate
zip file for each executable that is produced.
2) Added support for copying binary dependent files (DLLs and shared libraries)
3) Added support for including all submodules in a package
4) Added support for including icons in Windows executables
5) Added support for constants module which can be used for
determining certain build constants at runtime
6) Added support for relative imports available in Python 2.5 and up
7) Added support for building Windows installers (Python 2.5 and up)
and RPM packages
8) Added support for distutils configuration scripts
9) Added support for hooks which can force inclusion or exclusion of
modules when certain modules are included
10) Added documentation and samples
11) Added for building the cx_Freeze package instead of a
script used to build only the frozen bases
12) FreezePython renamed to a script called freeze in the Python distribution
13) On Linux and other platforms that support it set LD_RUN_PATH to
include the directory in which the executable is located

More information about the Python-announce-list mailing list