Recent Releases of py2exe

py2exe - py2exe 0.14.0.0

This major release introduces support for Python 3.12 and 3.13, and drops support for Python 3.8, following the official Python support schedule. This release also drops support for values of bundle_files<3 for Python 3.12 and newer (see #225 for further details).

Note: the former setup.py py2exe command line interface is not yet deleted, but it is most likely not functional on 3.12+ due to the lack of distutils. I will remove it as announced in an upcoming minor release.

What's Changed

  • Add support for Python 3.12
  • Add support for Python 3.13
  • Remove support for Python 3.8
  • runtime: raise RuntimeError with bundle_files<3 in Python 3.12+ (see #225)
  • Add support for MinGW by @raedrizqie in https://github.com/py2exe/py2exe/pull/214

New Contributors

  • @raedrizqie made their first contribution in https://github.com/py2exe/py2exe/pull/214

Full Changelog: https://github.com/py2exe/py2exe/compare/v0.13.0.2...v0.14.0.0

- Python
Published by albertosottile 7 months ago

py2exe - py2exe 0.13.0.2

This release includes several bug fixes.Thanks to all the people that contributed to it.

Changelog:

  • Reintroduce ability to specify different version info for each of the frozen binaries. by @lukaszgo1 in https://github.com/py2exe/py2exe/pull/194
  • Fix build with setuptools v70.0.0 by @lazka in https://github.com/py2exe/py2exe/pull/211
  • fix a bug in MemoryModule.c:PerformBaseRelocation by @H4ckF0rFun in https://github.com/py2exe/py2exe/pull/210
  • fix missing initialization settings for the frozen Python interpreter (#186)
  • add runtime support for setuptools v72
  • fix the matplotlib, numpy, and scipy hooks

New Contributors

  • @lukaszgo1 made their first contribution in https://github.com/py2exe/py2exe/pull/194
  • @lazka made their first contribution in https://github.com/py2exe/py2exe/pull/211
  • @H4ckF0rFun made their first contribution in https://github.com/py2exe/py2exe/pull/210

Full Changelog: https://github.com/py2exe/py2exe/compare/v0.13.0.1...v0.13.0.2

- Python
Published by albertosottile over 1 year ago

py2exe - py2exe 0.13.0.1

This release includes several fixes and it will be the last one that supports the deprecated setup API. Thanks to all the people that contributed to it.

Changelog: - improved the hook for pkg_resources to detect its vendored content automatically (issue #175 raised by @Athanasius). - the matplotlib hook now does not exclude wx automatically (issue #169 raised by @infinity77). - README: fix external link to freeze API (issue #162 raised by @novski). - adapted the hook for matplotlib to support their use of delvewheel (PR #182 by @zobac). - adapted the hooks for numpy and pandas to support the new .libs location,

- Python
Published by albertosottile over 2 years ago

py2exe - py2exe 0.13.0.0

This major release introduces support for Python 3.11 and drops support for Python 3.7, following the official Python support schedule. This release also removes the already deprecated command line interface of py2exe (formerly accessible via build_exe or -m py2exe). In addition, this release deprecates win32 wheels, due to increasing difficulties in testing them properly (see #157 for further information).

Note: contrary to what was announced in 0.12.x, this release does not remove the setup.py py2exe interface, but keeps it as deprecated, because not enough time has passed since the deprecation. Removal is still scheduled to happen before the release of Python 3.12 (when distutils will be removed upstream).

Changelog: - Add support for Python 3.11 - Drop support for Python 3.7 - Drop support for win32 wheels: - win32 wheels are still built and shipped but are provided untested. Issues experienced when using these wheels will not be investigated. See #157 for further information. - Remove build_exe command line interface. Please use the py2exe.freeze API. - Migrated the frozen Python bootloader to the new PyConfig initialization API. - _memimporter: switch to sys.modules dict to check for reimports instead of _PyImport_FindExtensionObject - runtime.LOAD_FROM_DIR: remove deprecated call toimp.load_dynamic`

- Python
Published by albertosottile over 3 years ago

py2exe - py2exe 0.12.0.2

Time for a patch release with a few minor fixes. Thanks to all the people that contributed to this release.

Changelog: - Update scipy hook to support version 1.9.2 and above. - freeze: update docstrings and documentation (issue #152 raised by @Athanasius).

- Python
Published by albertosottile over 3 years ago

py2exe - py2exe 0.12.0.1

Time for an immediate patch release, as the just deprecated setup.py interface was immediately broken...

Changelog: - builds set with the deprecated setup.py API were crashing runtime since they do not contain or support version_info (issue #151 raised by @Athanasius)

- Python
Published by albertosottile over 3 years ago

py2exe - py2exe 0.12.0.0

This new major release introduces a new API to use py2exe: the freeze function. Further information about how to use this function can be found in its documentation. A migration guide from the existing interfaces is also available here.

In addition, this release marks the existing setup.py py2exe and distutils.core.setup interfaces as deprecated. This was necessary due to the upstream deprecation of distutils and of the whole setup.py CLI. Both these interfaces will be completely removed in the next major release of py2exe. Further information about the rationale behind these changes can be found in #150 and #127. Special thanks to @Athanasius and @effigies for fruitful discussions during this migration.

As a result of this migration, some configuration options formerly available in setup were formally discontinued. Please refer to the py2exe.freeze documentation for a comprehensive list of all the supported options.

Changelog: - Introduce the new py2exe.freeze API. Documentation can be found here. - Use of the setup.py py2exe command and of distutils is deprecated Both these interfaces will be removed in the next major release. - Add two hooks to fix the bundling of winrt (issue #118 by @willf668) and passlib (issue #144 by @urishab).

- Python
Published by albertosottile over 3 years ago

py2exe - py2exe 0.11.1.1

This patch release includes several minor fixes. Thanks to all the people that contributed to this release.

Changelog: - The Stderr.write method used for logs of windows apps now returns the number of written bytes, PR #134 by @manueljacob. - Change default path of the log file created for windows apps to %APPDATA%, issue #138 by @mharbison72. - Restore hook functionality for pkg_resources, issue #139 by @Athanasius. - Restore explicit ImportError message when a module is required but it is listed in the ModuleFinder.excludes list, mentioned in issue #132 by @mharbison72.

- Python
Published by albertosottile over 3 years ago

py2exe - py2exe 0.11.1.0

Time for a new minor release. Package distribution metadata are now inserted in the bundle, to be fetched by importlib.metadata or pkg_resources. As usual, thanks to all the people that contributed to this release.

Changelog: - Drop support for Python 3.6 - Include package metadata in the bundle archive (issue #126 by @Athanasius) - Fixed a bug that prevented to use the optimize option when six was in the bundle (issue #120 by @MaxBQb) - Fixed a bug that ignored the optimize flag for some packages (issue #125 by @nchidsey) - Add setup_requires keyword in the py2exe setup scripts (issue #124 by @HeavyTony2) - Support building py2exe with setuptools>=60

- Python
Published by albertosottile about 4 years ago

py2exe - py2exe 0.11.0.1

This patch release includes a fix for issue #114, raised by @lukaszgo1.

Changelog: - vendor.modulefinder: pass m.__dest_file__ to compile to show relative paths in Tracebacks that occur from frozen applications (issue #114, regression from 0.10.x , original fix #12).

- Python
Published by albertosottile over 4 years ago

py2exe - py2exe 0.11.0.0

Time for a new "major" release of this project. This version introduces a new implementation of ModuleFinder, the class in charge of tracking the modules used by your code, that directly wraps CPython modulefinder.ModuleFinder. This solves a lot of issues and cleans a lot the code devoted to this task. The new reimplementation is called mf310 and replaces the one used in 0.10, mf34. The code is now definitely more modern and hopefully allows for longer maintainability of this project.

As you can imagine, this is quite a breaking change in how py2exe operates internally. While the API and setup.py scripts are not affected, I expext issues might happen when packaging software with this release, hence the bump in the "major" version number. Please report in the issue tracker any error that happens when freezing code that could have been packaged correctly with version 0.10.4.1.

Additionally, this release introduces support for Python 3.10. Wheels are published on PyPI as usual. A small side note though: the wheels for Python 3.10 win32 are provided "as is", without functional tests, as a lot of other packages do not publish wheels for this platform anymore (e.g. scipy, pandas, matplotlib). Due to the lack of these dependencies, I am unable to test the py2exe wheels properly, hence I had to disable the functional tests for this platform entirely. For this reason, issues with the cp310-cp310-win32 wheels will not be investigated.

Changelog: - New module finder mf310 written as a wrapper around CPython modulefinder.ModuleFinder - allows to freeze packages with apparent AttributeError or similar in the code or their modules (issue #112 raised by @lukaszgo1) - a new functional test is added for this feature - a lot of other minor bugs fixed by the new module finder - a copy of the parent module is added as a vendor module under py2exe.vendor - Add support for Python 3.10 - wheels for cp310-cp310-win32 are provided without support - New hook and functional test for scipy - zipextimporter can now be built as a standalone extension via its own setup script - Build wheels via python setup_zipextimporter.py bdist_wheel - Allows to use and debug zipextimporter separately as described in the original documentation - _memimporter: do not use importlib.reload for multi-phase initialization modules

- Python
Published by albertosottile over 4 years ago

py2exe - py2exe 0.10.4.1

This patch release includes the fixes required for issue #88, raised by @Athanasius.

Changelog: - ModuleFinder: add support for the pkg_resources.extern.VendorImporter loader (see https://github.com/py2exe/py2exe/commit/cb8282323d6743e2b34c385d354247b2e719f2a1 for further information) - New hooks for pkg_resources and infi

- Python
Published by albertosottile over 4 years ago

py2exe - py2exe 0.10.4.0

Time for a new minor release. py2exe now supports loading extensions that use multi-phase inizialization (PEP 489) when bundle_files<=2. This restores compatibility with a lot of standard library modules of Python 3.9.

Changelog: - Add support for multi-phase initialization (PEP 489) in _memimporter - this fixes importing modules like _bz2, _functools, math, and many others with bundle_files<=2 in Python 3.9 (issue #87 by @11philip22 and @mateiacd) - New hook for selenium (issue #85 by @rloutrel) - New add_datafile_to_zip method in dllfinder to add data files directly in the zip archive (to be used only when the module is able to load data files from there) - Updated copyright notices

- Python
Published by albertosottile almost 5 years ago

py2exe - py2exe 0.10.3.1

A patch release with some minor ehnancements.

Changelog: - New hook for pycryptodomex (PR #83 by @khuston) - ModuleFinder: respect excludes list in import_package - Updated hook for matplotlib >= 3.4.0

- Python
Published by albertosottile almost 5 years ago

py2exe - py2exe 0.10.3.0

This release changes the build system of py2exe wheels to rely more on setuptools and less on modifications from our side. This will change the wheel filenames, but they will be still fully compatible with pip. However, the filename change could impact developers that relied on these names directly in their build chains. In addition to that, this release includes several bugfixes and a new hook for matplotlib.

Changelog: - py2exe wheels now follow the standard naming format provided by setuptools and wheel (e.g. py2exe-0.10.2.2-cp36-cp36m-win_amd64.whl) - New hook for supporting matplotlib 3.2 and higher (issue #71 by @poettler-ric) - Fix for including implicit namespace packages as per PEP420 (issue #70 raised by @Mikayex) - ModuleFinder._gcd_import: improve error message if module is in the excludes list - The CI of py2exe is now hosted on GitHub Actions. AppVeyor and Bintray will no longer be used - Several bug fixes to the py2exe bdist_wheel system and CI tests

- Python
Published by albertosottile almost 5 years ago

py2exe - py2exe 0.10.2.1

A patch release to solve another outstanding known issue: ssl now can be bundled with bundle_files=0. Thanks to @leejeonghun for this highly appreciated contribution.

Changelog: - Patch MyLoadLibrary to support loading ssl with bundle_files=0 (#65 raised by @neodyne, resolved by @leejeonghun in #67).

- Python
Published by albertosottile almost 5 years ago

py2exe - py2exe 0.10.2.0

This release includes a new implementation of ModuleFinder that will solve two long-standing known issues, several fixes for more compact bundle_files settings, plus a few changes to the hooks to support more packages.

Changelog: - Patches on mf34 to make it compatible with newer versions of Python - mf34 (based on importlib.util.find_spec) is now used by default instead of mf3 - Add support for implicit namespace packages (PEP 420) - Restore functionality of executables packed with bundle_files<3 with all the supported Python versions - The bundle_files<=2 and the zipfile=None options are generally compatible only with the standard library. More complex software could still work but is not actively supported nor tested. - Currently, ssl does not work with bundle_files=0 (#65). - Unit tests do not show anymore a DeprecationWarning due to the use of importlib.find_loader - runtime: added further safeguards to prevent the accidental inclusion of DLLs in the library zip archive (instead of PYDs) - Add a hook and a functional test for pycryptodome - Add a hook for shapely - Add a functional test for zope.interface (which uses PEP 420) - Add a unit test for implicit namespace packages

- Python
Published by albertosottile about 5 years ago

py2exe - py2exe 0.10.1.0

Support and wheels for Python 3.9, new hooks and tests for some popular packages, and a few bug fixes to improve stability overall.

Changelog: - add support for Python 3.9 win32 and winamd64. New precompiled wheels are attached to this release and published on PyPI. - drop support for Python 3.5. py2exe will attempt to support only the Python versions in the upstream development cycle (at the moment, from 3.6 to 3.9 included). - `runtime.copyfiles: do not always callos.path.dirname(extdlldir)(issue #41, PR #43) - new hooks forurllib3andpandas. - new functional tests forrequestsandpandas`.

- Python
Published by albertosottile over 5 years ago

py2exe - py2exe 0.10.0.2

This release includes some bugfixes and a clean reimplementation of the pefile-based scanner module. The original license model of the project has been restored. Artifacts from the previous releases of the 0.10.0.x tree have been deleted.

Changelog (from 0.9.x): - add support for Python 3.8 win32 and winamd64. New precompiled wheels are attached to this release. - dllfinder: new binary dependency scanner based on pefile - dllfinder: results of `dllfinder.bindimageare now cached withcachetools -build_exe: thezipfileoption has been removed. -mf3: do not attempt to obtain the source for Extension Modules (PR #36 by @compholio) - lots of new functional tests in the AppVeyor pipeline. - fix hook forcertifion Python 3.7+ - fix AppVeyor chain to fail when functional tests fail - patches and functional test fornumpy - fix hook fortkinter` when the executable is called from 'Open with...' (issue #48 by @Ragster2448)

- Python
Published by albertosottile over 5 years ago

py2exe - py2exe 0.9.3.0

This is the first release of this project. Though it was tested both via synthetic routines and with real-world Python software, please keep in mind that it might still be affected by some bugs. Issue reports and PRs are always welcome.

Changelog (relative to the latest official release of py2exe): - support for Python 3.5-3.6-3.7 on win32 and winamd64 - provide precompiled wheels for all the supported platforms - automatic building and testing of wheels via AppVeyor - fix a bug experienced when embedding six.moves.urllib - introduce an `adddatafilemethod in runtime for hooks - new hook forcertifi`

Known issues: - Implicit namespace packages (PEP 420) are still not supported.

- Python
Published by albertosottile almost 7 years ago