Releases: py2exe/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 #194
- Fix build with setuptools v70.0.0 by @lazka in #211
- fix a bug in MemoryModule.c:PerformBaseRelocation by @H4ckF0rFun in #210
- fix missing initialization settings for the frozen Python interpreter (#186)
- add runtime support for
setuptools
v72 - fix the
matplotlib
,numpy
, andscipy
hooks
New Contributors
- @lukaszgo1 made their first contribution in #194
- @lazka made their first contribution in #211
- @H4ckF0rFun made their first contribution in #210
Full Changelog: v0.13.0.1...v0.13.0.2
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 excludewx
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 ofdelvewheel
(PR #182 by @zobac). - adapted the hooks for
numpy
andpandas
to support the new.libs
location,
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 thepy2exe.freeze
API. - Migrated the frozen Python bootloader to the new
PyConfig
initialization API. _memimporter
: switch tosys.modules
dict to check for reimports instead of_PyImport_FindExtensionObject
runtime.LOAD_FROM_DIR: remove deprecated call to
imp.load_dynamic`
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).
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 crashingruntime
since they do not contain or supportversion_info
(issue #151 raised by @Athanasius)
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 ofdistutils
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) andpasslib
(issue #144 by @urishab).
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 ofwindows
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 theModuleFinder.excludes
list, mentioned in issue #132 by @mharbison72.
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 whensix
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 thepy2exe
setup scripts (issue #124 by @HeavyTony2) - Support building
py2exe
withsetuptools>=60
py2exe 0.11.0.1
This patch release includes a fix for issue #114, raised by @lukaszgo1.
Changelog:
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 CPythonmodulefinder.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
- allows to freeze packages with apparent
- Add support for Python 3.10
- wheels for
cp310-cp310-win32
are provided without support
- wheels for
- 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
- Build wheels via
_memimporter
: do not use importlib.reload for multi-phase initialization modules