What's new in cx_Freeze 6.15.14
Feb 5, 2024
- tests: add tests for __main__ and cli (#2219)
- winversioninfo: comments length must be limited to fit WORD (#2220)
New in cx_Freeze 6.15.12 (Dec 18, 2023)
- Replace SetDllDirectory by AddDllDirectory
- Build(deps): bump actions/setup-python from 4 to 5 [pre-commit.ci]
- Pre-commit autoupdatebuild(deps): bump github/codeql-action from 2 to 3
- Build(deps): bump actions/upload-artifact from 3 to 4
- Build(deps): bump actions/download-artifact from 3 to 4
- Build: fix build_wheel (after #2162 and #2163)
- Hooks: add AV and PyAV
New in cx_Freeze 6.15.5 (Aug 1, 2023)
- Samples: update samples using wxPython
- Hooks: update sysconfig hook
- Startup: get rid of sysconfig at startup
New in cx_Freeze 6.15.4 (Aug 1, 2023)
- hooks: move sklearn hook to a submodule
- hooks: add boto3
- hooks: fix the sentry_sdk hook
New in cx_Freeze 6.15.0 (May 23, 2023)
- Breaking change: remove camelCase in Executable api
- New hooks: lazy_loader, librosa, jpype, pyimagej, pyreadstat
- Improved hooks: matplotlib, pytorch, PyQt6, PySide6, TkInter
- Bug fixes and improvements
New in cx_Freeze 6.14.9 (Apr 9, 2023)
- fix: setuptools is unbundled on Gentoo
- hooks: numpy can be used in conda-forge without mkl [windows] (#1867)
New in cx_Freeze 6.14.8 (Apr 3, 2023)
New in cx_Freeze 6.14.7 (Mar 27, 2023)
New in cx_Freeze 6.14.0 (Feb 19, 2023)
- New or improved hooks for:
- hooks: Add charset_normalizer (:pull:`1758`)
- hooks: Add shapely (:pull:`1725`)
- hooks: Add sklearn hook (:pull:`1715`)
- hooks: Add pytorch (:pull:`1720`)
- hooks: Update scipy hook (:pull:`1716`)
- hooks: fix sqlite3 hook in python embed (:pull:`1707`)
- Windows:
- startup: Do not limit PATH (revert #1659 partially), limit dll search path (:pull:`1675`)
- Ignore pylint error for deprecated module msilib (:pull:`1682`)
- Update to cx_Logging 3.1 and remove hacks for previous version (:pull:`1688`)
- [windows] Compile base executables with generic names depending on cache_tag (:pull:`1712`)
- [windows] build-wheel: maintain base executables on git (:pull:`1713`)
- [windows] build-wheel: fix git rm (use --ignore-unmatch instead) (:pull:`1714`)
- [windows] build-wheel: fix git branch (:pull:`1717`)
- [windows] setup: optional compilation in editable mode (:pull:`1718`)
- Documentation:
- pin sphinx to 5.3.0 (:pull:`1691`)
- docs: fix typo (:pull:`1697`)
- doc: Add keywords for setup() and reorganize read order (:pull:`1728`)
- Update copyright year (:pull:`1749`)
- docs: use 'furo' theme for sphinx (:pull:`1750`)
- doc: cleanup after use of furo theme (:pull:`1755`)
- doc: improve documentation about setup script (:pull:`1756`)
- project and doc: tweak formatting and ordering (:pull:`1762`)
- Small fixes in code and documentation (:pull:`1738`)
- Improvements/Refactor/Bugfix:
- Include copy of cx_Freeze license with frozen applications (:pull:`1672`)
- license: move update_frozen_license to a pre-commit (:pull:`1676`)
- Move OS constants to _compat module (:pull:`1709`)
- install: run() method needs to exist (:pull:`1747`)
- Fix the subclassing of internal commands (regression introduced in #1746) (:pull:`1759`)
- commands: accepts space-delimited string lists (:pull:`1761`)
- Project:
- Support Python 3.11 and set it as default in CI (:pull:`1681`)
- Drop python 3.6 (:pull:`1670`)
- Drop the external dependency on importlib-metadata (:pull:`1692`)
- Drop the external dependency on packaging (:pull:`1730`)
- Python type hints - upgrade syntax (:pull:`1703`)
- Cleanup (:pull:`1760`)
- setup: move metadata to pyproject.toml (setuptools 61+) (:pull:`1677`)
- pre-commit: fix files that trigger the hook (:pull:`1690`)
- Update pre-commit dependencies (:pull:`1693`)
- update dev dependencies (:pull:`1701`)
- project: add/fix urls (:pull:`1708`)
- build-wheel: add missing sdist files (:pull:`1711`)
- dist: Use another aproach to export DistributionMetadata (:pull:`1726`)
- build: setuptools has 'build' command since v62.4.0 (:pull:`1729`)
- dist: Use setuptools plugins to extend Distribution instead of subclassing (:pull:`1733`)
- Use setuptools Distribution directly (:pull:`1736`)
- Add build_exe as subcommand of setuptools build (plugin) (:pull:`1737`)
- Add/update commands (provisional) and minor tweaks (:pull:`1746`)
- Add dependabot (:pull:`1752`)
- Declare support for setuptools 66.0 (:pull:`1753`)
- Ignore build time error (:pull:`1754`)
- Samples:
- samples: Add simple samples using pyproject.toml and setup.cfg (:pull:`1757`)
New in cx_Freeze 6.13.0 (Oct 26, 2022)
- New or improved hooks for:
- hooks: Add hooks for PyQt6 (6.3.1 and 6.4.0) (PR #1664)
- hooks: support for new pyside6 6.4.0 (PR #1642)
- hooks: support for PySide6 6.4.0 on MSYS2 (PR #1655)
- Windows:
- Fix the filename of .msi file generated by bdist_msi. (PR #1591)
- Improvements related to bdist_msi –target_name (PR #1648)
- initscripts: Separate the code needed by windows and mingw and fix the path usage. (PR #1652)
- Fix missing dlls in build root directory [mingw] (PR #1653)
- Ensure python3.dll is loaded in some python versions (bpo-29778) (PR #1657)
- Fix dependency target to work better with MSYS2 (PR #1658)
- startup: limit the PATH in all windows environments (PR #1659)
- setup: Fix python compatibility, especially on Windows (PR #1656)
- parser: lief >= 0.12 is required [windows] (PR #1661)
- Samples:
- samples: fix demo scripts for pythonnet 3 (PR #1643)
- samples: Add samples for PyQt6 and add readme to some qt samples (PR #1663)
- Improvements/Refactor/Bugfix:
- Refactor ci/requirements.py (PR #1644)
- tests: add mores tests for bdist_msi (PR #1646)
- Do not translate newlines (generate identical file across OS) (PR #1645)
- Fix warning and test docs. (PR #1647)
- Monkey patch setuptools sandbox to get a better run_setup (PR #1649)
- tests: cleanup files and directories created (PR #1650)
- use os.fspath() instead of str() (PR #1660)
New in cx_Freeze 6.12.0 (Oct 13, 2022)
- Improve tkinter hook to work on all OS
- Improved PyQt5/Pyside2 hooks and new hook for PySide6
- Linux binary wheels for arm64 (aarch64)
- Bug fixes and improvements
New in cx_Freeze 6.11 (Jun 5, 2022)
- Binary wheels for manylinux and macOS (including Apple Silicon)
- Complete integration to use setuptools instead of distutils
- More code modernization
- Bug fixes and improvements
New in cx_Freeze 6.9 (Dec 8, 2021)
- Support for pathlib.Path
- New or improved hooks, with emphasis on matplotlib, numpy, PyQt5 and PySide2
- New ModuleFinder engine uses importlib.machinery
- Refactored Freezer
- New support for package metadata improving Module and new DitributionCache
- Enhanced support for Python 3.8 and Python 3.9, including MSYS2 and Anaconda distributions
- Improvements for multiprocessing
- Optimizations in detection and distribution of libraries
- Integrated to setuptools and importlib-metadata
- Code modernization
- Various bug fixes.
New in cx_Freeze 6.8 (Sep 7, 2021)
- Improvements:
- Support pathlib in ModuleFinder (PR #1153)
- Use Path in Module.file (PR #1158)
- Use Path in _replace_paths_in_code (PR #1159)
- Use Path in Module.path (PR #1160)
- Convert code in hooks to use Path (PR #1161)
- Use path.iterdir to simplify a code block (PR #1162)
- Use Path in executable module (PR #1163)
- Use Path in ModuleFinder.zip_includes (PR #1164)
- Use Path in process_path_specs (PR #1167)
- Use Path in Freezer include_files and zip_includes (PR #1168)
- Use Path in Freezer.targetdir and some related code (PR #1169)
- Use Path in Freezer._copy_file and almost remaining related code (PR #1172)
- Use Path in Executable icon and shortcut_dir (PR #1173)
- Use Set[Path] in dependent_files (PR #1215)
- Use subprocess (PR #1214)
- Add more options to cxfreeze script and tweak the docs (PR #1174)
- Refactor and bugfix for all systems:
- Remove unused and unnecessary code (PR #1142)
- Add some old modules to exclude list (PR #1149)
- Fix a last minute change and tweak docstrings (PR #1154)
- Include files (from a directory) is ignoring the exclude dependencies option (PR #1216)
- Add more typing to freeze (PR #1218)
- Create permanent cx_Freeze/bases (PR #1227)
- Make Freezer.targetdir a property to improve a bit (PR #1170)
- Code analysis, pep8, f-string (PR #1177)
- Complementary fixes (PR #1179)
- Use setuptools instead distutils a bit more (PR #1195)
- Fix compatibility with msys2 python 3.9.6 (PR #1182)
- LLVM dlltool only supports generating an import library (PR #1187)
- Normalize paths at startup for MSYS2 python (PR #1193)
- Disable delay load to avoid ‘Segmentation fault’ in mingw 32 bits (PR #1217)
- Support Path as parameter for some functions in C (PR #1225)
- Add a stub interface for util module (PR #1226)
- Recursing into directories to search for load order files (PR #1200)
- Fix program files folder for msi using mingw and some tweaks (PR #1236)
- New or improved hooks for:
- _cffi_backend (cffi) (PR #1150)
- googleapiclient (PR #1151, Issue #1147)
- PyQt5 hooks (PR #1148, PR #1155, PR #1156, Issue #631, Issue #846, Issue #972, Issue #1119)
- PySide2 (PR #1183)
- tzdata, zoneinfo and backports.zoneinfo (PR #1198, PR #1204, PR #1208)
- pyzmq (PR #1199)
- numpy+mkl in conda (PR #1205)
- Samples:
- Fix code of some samples (PR #1145)
- Remove outdated sample (PR #1157)
- Improve sample to support pyzmq < 20 and timeout (PR #1190)
- Tweak pyqt5 and pyside2 samples (PR #1180)
- Improve PyQt5 and PySide2 samples (PR #1192)
- Documentation:
- Make distutils help and documentation more in line with cxfreeze script (PR #1175)
- Update distutils build_exe help in docs (PR #1176)
- Remove distutils references in main docs (PR #1196)
- Better explain the miniconda installation (PR #1209)
- Minor updates to docs (PR #1230)
New in cx_Freeze 6.7 (Jul 9, 2021)
- Improvements, refactor and bugfix for all systems:
- Implemented multi levels for build_exe silent option (:pull:`883`)
- Corrected silent_level to default to 0 (to agree with documentation) (:pull:`1046`)
- Split up Freezer object (:pull:`1035`)
- Ignores nonexistent files in dist-info (:pull:`1038`, :issue:`1034`)
- Use setuptools build_ext to compile base executables and with names that dependes on python version and platform (:pull:`1054`)
- Use sysconfig and others instead of some distutils modules (:pull:`1055`)
- Handle the pre-copy task with the _pre_copy_hook method in the freezer (:pull:`1069`)
- New method to handle platform dependent resources in the freezer (:pull:`1070`)
- Minor tweaks to tidy up the code (:pull:`1079`)
- Use wchar if possible. (:pull:`1080`)
- Create cx_Freeze/bases if it doesn't exist (:pull:`1082`)
- Use option blocks in the docs and add command line help from commands (:pull:`1097`)
- Use a valid example in docs (:pull:`1098`)
- Cleanup versionchanged; limit to 6.0+ (:pull:`1099`)
- Improve the text of build_exe bin_* (:pull:`1100`)
- Use of some Sphinx features to organize a bit (:pull:`1102`, :pull:`1138`, :pull:`1139`)
- Implement Freeze._default_bin_path_includes for all platforms (:pull:`1108`)
- Move some code to startup to unify the use of environ (:pull:`1112`)
- Small changes to resolve code warnings (:pull:`1122`)
- New method Module.update_distribution to update the cached distribution for the frozen executable (:pull:`1123`)
- Implement DistributionCache.from_name (:pull:`1135`)
- Use of black and pyupgrade (:pull:`1056`, :pull:`1085`, :pull:`1086`, :pull:`1086`, :pull:`1057`)
- Use pep8 names in private functions in freezer (:pull:`1068`)
- Linux:
- Fix the support for unix-like systems (:pull:`1067`, :issue:`1061`)
- check in advance whether the dependency should be copied to avoid changing the rpath unnecessarily. (:pull:`1091`, :issue:`1048`)
- Fix issue with strip in bdist_rpm (:pull:`1092`, :issue:`1048`)
- Improve installation docs for linux (:pull:`1095`)
- Fix a buffer overflow introduced in :pull:`872` (:pull:`1047`)
- Fix another flaw introduced in :pull:`872` (:pull:`1111`)
- Fix regression introduced in :pull:`995` (and (:pull:`985`)) (:pull:`1090`, :issue:`1029`)
- macOS:
- Added CFBundlePackageType and NSHighResolutionCapable by default to Info.plist of Darwin bundles (:pull:`1031`, :issue:`239`)
- Windows:
- Transform filename to msilib.Binary for binary data (:pull:`1024`, :issue:`1019`)
- Add extension registration on Windows (:pull:`1032`)
- Support for icons with non-ascii names (:pull:`1066`)
- New C function to update the PE checksum (or fix it in case it is zero) (:pull:`1071`, :issue:`315`, :issue:`1059`)
- Use setuptools command to install a include file (:pull:`1072`)
- Fix the support for non-ascii names in windows (:pull:`1077`, :issue:`835`)
- PyEval_InitThreads is unecessary in py37+ and is deprecated in py39 (:pull:`1081`)
- Set working directory in the Desktop shortcut (:pull:`1083`, :issue:`48`, :issue:`623`)
- Improve documentation about bdist_msi (:pull:`1084`, :issue:`48`)
- New or improved hooks for:
- pydantic (:pull:`1074`, :issue:`1052`)
- scikit-image (skimage) (:pull:`1104`, :issue:`1101`)
- plotly (:pull:`1105`, :issue:`1101`)
- scipy (versions 1.6.3 to 1.7.0) (:pull:`1106`, :pull:`1134`, :issue:`1101`, :issue:`1129`)
- numpy and numpy+mkl (versions 1.19.5 to 1.21.0) (:pull:`1113`, :pull:`1125`, :issue:`739`, :issue:`1110`)
- six (:pull:`1115`)
- hdfdict, h5py_wrapper and pytest-runner (:pull:`1116`, :pull:`1124`, :issue:`1118`)
- Samples:
- pydantic (:pull:`1074`)
- pythonnet-demo (python.NET sample based on it's demo) (:pull:`1088`, :issue:`1049`)
New in cx_Freeze 6.6 (Apr 14, 2021)
- Improvements:
- Enable python -m cx_Freeze syntax (PR #899)
- Standardize InitializePython on all platforms. (PR #872)
- Store a copy of cached dist-info (PR #958)
- Suppress additional output if –silent has been set. (PR #830)
- Only copy a file if should copy a file (PR #995, Issue #256)
- Refactor cache dist-info files to be extended (PR #957)
- Remove subfolders belonging to excluded modules (PR #922)
- Windows:
- Avoid duplicates of libpythonXX.so and pythonXX.ddl (PR #978)
- Rebirth of –include-msvcr - real support for vcruntime dlls [windows] (PR #973, Issue #367)
- Set lib directory as default for dll search [windows] (PR #1000)
- Speedup compiling on windows (PR #993)
- Support for delay load [mingw] (PR #1002)
- Support for delay load [windows] (PR #1001)
- Update to cx_Logging 3.0 (PR #909, PR #994, PR #996, PR #998, PR #1012)
- Use the delay load to compile Win32Service (PR #1003)
- New or improved hooks for:
- llvmlite (PR #1016)
- matplotlib (PR #971)
- mkl-service (PR #975)
- numpy (PR #970, PR #968)
- pandas (PR #969)
- pycountry (PR #956)
- pyodbc (PR #1018)
- pyqtgraph (PR #1015)
- pyzmq 22 (PR #953)
- Samples:
- Add sample for pycountry (PR #955)
- Add sample for pyzmq (PR #954)
- Update the service sample and build (PR #886)
- Update PySide2 sample (PR #1011)
- Tweak samples (PR #888)
- Bugfixes:
- Force encoding of generated files to utf-8 (PR #1005, Issue #989)
- cx_Logging as submodule (PR #874, Issue #866)
- Avoid the __main__ module from pip wheel (PR #894, Issue #891)
- Fix regression introduced in PR #857 (PR #878, Issue #875)
- Fix typo (PR #877, Issue #866)
- Fix the pillow sample (PR #876)
- Fix the docs (PR #870)
- Fix regression introduced in #978 (PR #1010)
- Standardizes the target directory Freezer (and cxfreeze`) (PR #999)
- Fix regression introduced in PR #973 (PR #976)
- Fix PATH for anaconda/miniconda (PR #974)
- Starts freezing in a clean directory (PR #965)
- Fix a regression introduced in #798 (PR #945, Issue #932)
- fix regressions introduced in #843 (PR #920, Issue #919)
- Some packages use a directory with vendored modules (PR #906, Issue #900)
- IncludeModule has priority over ExcludeModule (PR #904)
- Better error checks (PR #902)
- Support for executable names that may not be valid identifiers (PR #889, Issue #884)
- Accept file without extension as source file to be backwards compatible (PR #893)
- Refactor:
- Update readme (PR #1022)
- Update installation docs (PR #1021)
- Modify cxfreeze script a bit (PR #1009)
- Reestructure ConstantModule (PR #1004)
- Invert the assignment to create a new list (PR #987)
- Refactor Freezer init (PR #985)
- New module exception (PR #984)
- Separates the freezer module classes (PR #983)
- Update code style in Modules (PR #982)
- build docs in build dir at project’s root (PR #981)
- Minor update to code style (PR #980)
- update faq a bit (PR #977)
- Cleanup freezer copy file method (PR #964)
- Typo (PR #962)
- Change detection order and tweak formatting (PR #961)
- Refactor Module class attributes (PR #960)
- Fade to black (PR #946, PR #1020)
- Distribute samples only with source code (PR #941)
- Add badges (PR #944)
- Revise docs a bit (PR #943)
- Update in the docs the use of main branch (PR #942)
- remove unused files (PR #910)
- Update build-wheel (PR #903)
- Revert previous commit and fix the ident only (PR #882)
- Fix potential errors (PR #881)
- Code analysis (PR #880)
New in cx_Freeze 6.5 (Jan 4, 2021)
- Improvements:
- Refactor ModuleFinder to use importlib.machinery (PR #811)
- Executable target_name now has support for names with version (PR #857)
- The name of the target executable can be modified after the build (PR #858, Issue #703)
- Use codeType.replace when in py38+ (optimized) (PR #836)
- Use a configuration file for Read the Docs (PR #818)
- Modernize code (Type annotation, PEP8, black, refactor) (PR #815, PR #832, PR #837, PR #838, PR #839, PR #840, PR #841, PR #842, PR #843, PR #859, PR #860, PR #861, PR #864, PR #865, PR #868)
- Windows:
- Check if icon is valid (Issue #856, PR #851, Issue #824, Issue #379)
- Warning about python from Windows Store (PR #867, Issue #856)
- macOS:
- Implemented a “plist_items” option on bdist_mac command (PR #827)
- Remove deprecated methods in macdist (PR #810)
- Fix a regression for macOS (PR #816, Issue #809)
- Fix a bug using macOS on Github Actions (PR #812)
- Marked rpath-lib-folder option as depreciated. (PR #834)
- New or improved hooks for:
- cryptography (PR #817, Issue #814)
- google.cloud.storage (PR #821)
- matplotlib (PR #807, Issue #805)
- pygments (PR #863, Issue #862)
- zoneinfo/tzdata (and backports.zoneinfo) (PR #854)
- Samples:
- Better pytz sample (PR #852)
- Sample for new library zoneinfo (py39) (PR #853)
- Sample to demonstrate the use a valid and an invalid icon (PR #850)
- Bugfixes:
- cx_Freeze.__version__ should be the package version (PR #806, Issue #804)
- pin importlib_metadata to >=3.1.1 (PR #819, PR #820, PR #822)
- Correct test failures when initializing ModuleFinder (PR #833)
New in cx_Freeze 6.4 (Nov 22, 2020)
- Improvements:
- Improved the resolution of dependencies in darwin MachO files (PR #590)
- Documentation (PR #783, PR #796`)
- Release using GitHub Actions CI/CD workflows (PR #797)
- Modernize code (Type annotation, PEP8, pyupgrade, black, refactor, cleanup) (PR #785, PR #776, PR #314, PR #787, PR #784, PR #786, PR #788, PR #789, PR #793, PR #794, PR #780, PR #795, PR #799, PR #800, PR #801, PR #790, PR #798)
- New or improved hooks for:
- PyQt5 (PR #718, PR #791)
- Samples:
- Added a sample to illustrate problem with importlib.util.find_spec (PR #735)
- Sample for bdist_msi, summary_data option (PR #775)
- README for some samples; remove requirements.txt to avoid to be interpreted by some sites as the requirements of cx_Freeze (PR #802)
- Bugfixes:
- Cause MSI file to be released at the end of bdist_msi command. (PR #781)
New in cx_Freeze 6.3 (Oct 20, 2020)
- Initial support for metadata to use by pkg_resources and importlib.metadata
- Namespace packages are automatically detected
- Enhanced support for Python 3.8
- Better support for MSYS2
- More integrated to setuptools
- Fixed long-awaited bugs and recent bugs
- Fixed issues with multiprocessing (see Windows section of 6.2)
New in cx_Freeze 6.2 (Oct 9, 2020)
- New or improved hooks for:
- aiofiles (PR #600)
- babel (PR #577)
- bcrypt (PR #583, Issue #581)
- certifi (PR #690)
- cffi.cparser (PR #603)
- ctypes (for MSYS2 mingw) (PR #565)
- matplotlib (PR #574, Issue #569)
- pikepdf (PR #604)
- lxml (PR #604)
- pycryptodome (PR #602)
- pygments (PR #604)
- pkg_resources (PR #584, Issue #579)
- pytest (PR #617)
- setuptools (PR #608)
- uvloop (PR #689)
- Fixed multiprocessing pickling errors (PR #622, Issue #539, Issue #402, Issue #403, Issue #231, Issue #536)
- Ensure the copy of default python libraries (PR #640)
- Replace deprecated functions that will be removed in py4 - win32gui (PR #649)
- Exclude Tkinter from loaded modules (PR #576, Issue #567)
- Fixed “no module named ‘scipy.spatial.cKDTree’” (PR #626, Issue #233)
- Fixed “no module named ‘multiprocessing.pool’” (PR #627, Issue #353)
- Download cx_Logging to build Win32Service.exe when building from sources (PR #650, Issue #519)
New in cx_Freeze 6.1 (Apr 26, 2020)
- Added support for Python 3.8 (PR #545, PR #556).
- Added support for python setup.py develop (PR #502).
- Use console_scripts in entry_points so that the commands cxfreeze and cxfreeze-quickstart run on Windows without the need for running a postinstall script (PR #511).
- Added support for switching from per-user to per-machine installations on Windows (PR #507).
- Fix installation if AlwaysInstallElevated policy is set on Windows (PR #533).
- Updated default dependencies for Python 3 on Windows (PR #505).
- Removed unused code (PR #549).
- The default dependencies are now always copied into the lib folder instead of into the directory where the executable resides on Linux (PR #518).
- Dependent files are now copied to the same relative directory as their location in the source on Linux (PR #494).
- Added tests for commonly used packages like cryptography, pillow, sqlite, pytz, ctypes and distutils (PR #508, PR #537, PR #546, PR #555, PR #557).
- Fix regression with DLL dependencies introduced in 6.0 by PR #492 due to case differences (PR #512).
- Fix regression with dependent files introduced in 6.0 by PR #297 for platforms other than macOS (PR #516).
- The version of cx_Freeze is now defined in one place (PR #552).
- Eliminate exclusion of gestalt module on platforms other than macOS since it exists outside of macOS.
- Improved hooks for sqlite3 (PR #509), cryptography, and tkinter (PR #559).
- Added hook for pytz (PR #554).
- Improved hook infrastructure, permitting hooks to add constants that can be examined at runtime, determine whether a module is going to be stored in the file system and include files in the zip file.
- Improved documentation (PR #510).
New in cx_Freeze 4.2.3 (Oct 11, 2011)
- Added support for Python 3.2.
- Added hook for datetime module which implicitly imports the time module.
- Fixed hook for tkinter in Python 3.x.
- Always include the zlib module since the zipimport module requires it,
- even when compression is not taking place.
- Added sample for a tkinter application.
New in cx_Freeze 4.2.2 (Oct 11, 2011)
- Added support for namespace packages which are loaded implicitly upon
- startup by injection into sys.modules.
- Added support for a Zope sample which makes use of namespace packages.
- Use the Microsoft compiler on Windows for Python 2.6 and up as some
- strange behaviors were identified with Python 2.7 when compiled using
- mingw32.
- Eliminate warning about -mwindows when using the Microsoft compiler for
- building the Win32GUI base executable.
- Added support for creating version resources on Windows.
- Ensure that modules that are not truly required for bootstrapping are not
- included in the frozen modules compiled in to the executable; otherwise,
- some packages and modules (such as the logging packagecannot be found at runtime. This problem only seems to be present in Python 2.7.1 but it is a
- good improvement for earlier releases of Python as well.
- Added support for setting the description for Windows services.
- Added hook for using the widget plugins which are part of the PyQt4.uic
- package.
- Added additional hooks to remove spurious errors about missing modules
- and to force inclusion of implicitly imported modules (twitter module
- and additional submodules of the PyQt4 package).
- Fixed support for installing frozen executables under Python 3.x on
- Windows.
- Removed optional import of setuptools which is not a complete drop-in
- replacement for distutils and if found, replaces distutils with itself,
- resulting in some distutils features not being available; for those who
- require or prefer the use of setuptools, import it in your setup.py.
New in cx_Freeze 4.2.1 (Oct 11, 2011)
- Added support for specifying bin_path_includes and bin_path_excludes in
- setup scripts.
- Added support for compiling Windows services with the Microsoft compiler
- and building for 64-bit Windows.
- When installing Windows services, use the full path for both the executable
- and the configuration file if specified.
- Eliminate duplicate files for each possible version of Python when building
- MSI packages for Python 2.7.
- Fix declaration of namespace packages.
- Fix check for cx_Logging import library directory.
- Added hooks for the python-Xlib package.
- Added hooks to ignore the _scproxy module when not on the Mac platform and
- the win32gui and pyHook modules on platforms other than Windows.
- When copying files, copy the stat(information as well as was done in
- earlier versions of cx_Freeze.
- Added documentation for the shortcutName and shortcutDir parameters for
- creating an executable.
New in cx_Freeze 4.2 (Oct 11, 2011)
- Added support for Python 2.7.
- Improved support for Python 3.x.
- Improved support for Mac OS X based on feedback from some Mac users.
- Improved hooks for the following modules: postgresql, matplotlib, twisted,
- zope, PyQt4.
- Improved packaging of MSI files by enabling support for creating shortcuts
- for the executables, for specifying the initial target directory and for
- adding other arbitrary configuration to the MSI.
- Added support for namespace packages such as those distributed for zope.
- The name of the generated MSI packages now includes the architecture in
- order to differentiate between 32-bit and 64-bit builds.
- Removed use of LINKFORSHARED on the Mac which is not necessary and for
- Python 2.6 at least causes an error to be raised.
- Turn off filename globbing on Windows
- Fixed bug that prevented hooks from successfully including files in the
- build (as is done for the matplotlib sample).
- Fixed bug that prevented submodules from being included in the build if the
- format of the import statement was from . import .
- Reverted bug fix for threading shutdown support which has been fixed
- differently and is no longer required in Python 2.6.5 and up (in fact an
- error is raised if the threading module is used in a frozen executable and
- this code is retained).
- Fixed bug which resulted in attempts to compile .pyc and .pyo files from
- the initscripts directory.
- Fixed selection of "Program Files" directory on Windows in 64-bit MSI
- packages built by cx_Freeze.
New in cx_Freeze 4.1.2 (Oct 11, 2011)
- Fix bug that caused the util extension to be named improperly.
- Fix bug that prevented freezing from taking place if a packaged submodule
- was missing.
- Fix bug that prevented freezing from taking place in Python 3.x if the
- encoding of the source file wasn't compatible with the encoding of the
- terminal performing the freeze.
- Fix bug that caused the base modules to be included in the library.zip as
- well as the base executables.
New in cx_Freeze 4.1.1 (Oct 11, 2011)
- Added support for Python 3.1.
- Added support for 64-bit Windows.
- Ensured that setlocale(is called prior to manipulating file names so
- that names that are not encoded in ASCII can still be used.
- Fixed bug that caused the Python shared library to be ignored and the
- static library to be required or a symbolic link to the shared library
- created manually.
- Added support for renaming attributes upon import and other less
- frequently used idioms in order to avoid as much as possible spurious
- errors about modules not being found.
- Force inclusion of the traceback module in order to ensure that errors are
- reported in a reasonable fashion.
- Added sample for the PyQt4 package and improved hooks for that package.
- Enhanced hooks further in order to perform hidden imports and avoid errors
- about missing modules for several additional commonly used packages and
- modules.
- Readded support for the zip include option.
- Avoid the error about digest mismatch when installing RPMs by modifying
- the spec files built with cx_Freeze.
- Ensure that manifest.txt is included in the source distribution.
New in cx_Freeze 4.1 (Oct 11, 2011)
- Added support for Python 3.x.
- Added support for services on Windows.
- Added command line option --silent
- This option turns off all normal output including the report of the modules
- that are included.
- Added command line option --icon
- Ensure that Py_Finalize(is called even when exceptions take place so that
- any finalization (such as __del__ callsare made prior to the executable
- terminating.
- Ensured that empty directories are created as needed in the target
- The encodings package and any other modules required to bootstrap the
- Python runtime are now automatically included in the frozen executable.
- Ensured that if a target name is specified, that the module name in the zip
- file is also changed.
- Enabled support for compiling on 64-bit Windows.
- If an import error occurs during the load phase, treat that as a bad module
- as well.
- Enabled better support of setup.py scripts that call other setup.py
- scripts such as the ones used by cx_OracleTools and cx_OracleDBATools.
- On Solaris, ldd outputs tabs instead of spaces so expand them first before
- looking for the separator.
- On Windows, exclude the Windows directory and the side-by-side installation
- directory when determining DLLs to copy since these are generally
- considered part of the system.
- On Windows, use %* rather than the separated arguments in the generated
- batch file in order to avoid problems with the very limited argument
- processor used by the command processor.
- For the Win32GUI base executable, add support for specifying the caption to
- use when displaying error messages.
- For the Win32GUI base executable, add support for calling the excepthook
- for top level exceptions if one has been specified.
- On Windows, ensure that the MSI packages that are built are per-machine
- by default as otherwise strange things can happen.
- Fixed bug in the calling of readlink(that would occasionally result in
- strange behavior or segmentation faults.
- Duplicate warnings about libraries not found by ldd are now suppressed.
- Tweaked hooks for a number of modules based on feedback from others or
- personal experience.
New in cx_Freeze 4.0.1 (Oct 11, 2011)
- Added support for Python 2.6. On Windows a manifest file is now required
- because of the switch to using the new Microsoft C runtime.
- Ensure that hooks are run for builtin modules.
New in cx_Freeze 4.0 (Oct 11, 2011)
- Added support for copying files to the target directory.
- Added support for a hook that runs when a module is missing.
- 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.
- Added support for searching zip files (egg filesfor modules.
- Added support for handling system exit exceptions similarly to what Python
- does
- Added code to wait for threads to shut down like the normal Python
- interpreter does.
- Hooks added or modified based on feedback from many people.
- Don't include the version name in the display name of the MSI.
- Use the OS dependent path normalization routines rather than simply use the
- lowercase value as on Unix case is important;
- Include a version attribute in the cx_Freeze package and display it in the
- output for the --version option to the script.
- Include build instructions
- 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.
- 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!
- 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 initialization.
- Modified license text to more closely match the Python Software Foundation
- license as was intended.
- Added sample script for freezing an application using matplotlib.
- Renamed freeze to cxfreeze to avoid conflict with another package that uses
- that executable
New in cx_Freeze 4.0b1 (Oct 11, 2011)
- Added support for placing modules in library.zip or in a separate zip file
- for each executable that is produced.
- Added support for copying binary dependent files (DLLs and shared
- libraries)
- Added support for including all submodules in a package
- Added support for including icons in Windows executables
- Added support for constants module which can be used for determining
- certain build constants at runtime
- Added support for relative imports available in Python 2.5 and up
- Added support for building Windows installers (Python 2.5 and upand
- RPM packages
- Added support for distutils configuration scripts
- Added support for hooks which can force inclusion or exclusion of modules
- when certain modules are included
- Added documentation and samples
- Added setup.py for building the cx_Freeze package instead of a script
- used to build only the frozen bases
- FreezePython renamed to a script called freeze in the Python distribution
- On Linux and other platforms that support it set LD_RUN_PATH to include
- the directory in which the executable is located