Build standalone executables for Windows
Project description
py2exe for Python 3
py2exe
is a software to build standalone Windows executable programs from Python
scripts. py2exe
can build console executables and windows (GUI) executables.
py2exe
supports the Python versions* included in the official development cycle.
Development of py2exe
is hosted here: https://github.com/py2exe/py2exe.
Changes
The detailed changelog is published on GitHub.
Version 0.13.0.2:
- reintroduce ability to specify different version info for each of the frozen binaries
- fix a bug in
MemoryModule.c:PerformBaseRelocation
- fix missing initialization settings for the runtime Python interpreter
- add support for
setuptools
v72 - fix the
matplotlib
,numpy
, andscipy
hooks - fix
py2exe
wheels build withsetuptools
v70.0.0
Version 0.13.0.1:
- improved the hook for
pkg_resources
to detect its vendored content automatically - the
matplotlib
hook now does not excludewx
automatically - adapted the hook for
matplotlib
to support their use ofdelvewheel
- adapted the hooks for
numpy
andpandas
to support the new.libs
location
Version 0.13.0.0:
- Add support for Python 3.11
- Drop support for Python 3.7
- Drop support for
win32
wheelswin32
wheels are still built and shipped but are provided untested. Issues experienced when using these wheels will not be investigated. See https://github.com/py2exe/py2exe/discussions/157 for further information.
- Remove
build_exe
command line interface. Please use thepy2exe.freeze
API.
Version 0.12.0.2:
- Support
scipy
versions newer than 1.9.2. - Fixed documentation for the
py2exe.freeze
API.
Version 0.12.0.1:
- Fixed an issue that prevented builds via the deprecated
setup.py
API.
Version 0.12.0.0:
- Introduce the new
py2exe.freeze
API. Documentation can be found here. - Use of the
setup.py py2exe
command and ofdistutils
is deprecated as per PEP 632. Both these interfaces will be removed in the next major release. See here for a migration guide. - Add two hooks to fix the bundling of
winrt
andpasslib
.
Version 0.11.1.1:
- The log file for windows apps is now stored in
%APPDATA%
by default ModuleFinder
now raises an explicit error if a required module is inexcludes
- Restore hook functionality for
pkg_resources
- The
Stderr.write
method used for windows apps now returns the number of written bytes
Version 0.11.1.0:
- Drop support for Python 3.6
- Include package metadata in the bundle archive (to be used by e.g.
importlib.metadata
) - Fixed a bug that prevented to use the
optimize
option whensix
was in the bundle - Fixed a bug that ignored the
optimize
flag for some packages
Version 0.11.0.1:
- Show again relative paths in Tracebacks that happen from the frozen application (#12 and #114)
Version 0.11.0.0:
- New module finder
mf310
written as a wrapper around CPythonmodulefinder.ModuleFinder
- Add support for Python 3.10
- New hook for
scipy
zipextimporter
can now be built as a standalone extension via its own setup script
Version 0.10.4.1:
ModuleFinder
: add support for thepkg_resources.extern.VendorImporter
loader- New hooks for
pkg_resources
andinfi
Version 0.10.4.0:
zipextimporter
supports external modules that use multi-phase initialization (PEP 489)- New hook for
selenium
dllfinder
provides a new method to add data files in the zip archive
Version 0.10.3.1:
- New hook for
pycryptodomex
ModuleFinder
: respect excludes list inimport_package
- Updated hook for
matplotlib
>= 3.4.0
Version 0.10.3.0:
- New hook for supporting
matplotlib
3.2 and higher. - Fix for including implicit namespace packages as per PEP420.
Version 0.10.2.1:
- Patch
MyLoadLibrary
to supportssl
withbundle_files=0
.
Version 0.10.2.0:
- New module finder with support for implicit namespace packages (PEP 420).
DLLFinder
automatically excludes VC++ redist and Windows CRT DLLs from bundles.- Several fixes for bundling software with
bundle_files<=2
(only the standard library is supported, other dependencies may or may not work). - New hooks for
pycryptodome
andshapely
.
Version 0.10.1.0:
- Add support for Python 3.9.
- Drop support for Python 3.5.
- New hooks for
urllib3
andpandas
.
Version 0.10.0.2 (from versions 0.9.x):
- Introduce compatibility with Python 3.5, 3.6, 3.7, and 3.8.
- Drop compatibility with Python 3.4 and earlier.
- New or updated hooks for
certifi
,numpy
,tkinter
,socket
,ssl
, andsix
. build_exe
: thezipfile=None
option has been removed.runtime
: the Python interpreter DLL is no longer altered before being inserted in the executable bundle.- Several bugfixes, better error messages.
Installation
pip install py2exe
Usage
Use the py2exe.freeze
function as documented here.
Using a setup.py
script or the builder
Using a setup.py
script with py2exe
is deprecated. Please adapt your
scripts to use the new freeze
API. This interface will be removed in the
next major release.
The build_exe
(or -m py2exe
) CLI was removed in version 0.13.0.0.
Known issues and notes
- High-level methods or hooks to embed Qt plugins in the bundle (needed by PySide2/PyQt5) are missing.
- (*)
win32
wheels are provided without testing. Users are encouraged to use thewin_amd64
wheels (see #157).
Credits
Further informations about the original development of py2exe
and other
usage guidelines can be found in the original README.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for py2exe-0.13.0.2-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 820cf2871bda4cb99d8e7755b30a98e782ec7bb939d43bb6502fb12adc7c6a4a |
|
MD5 | 675767df0e932a62cd10cfd215c89a7c |
|
BLAKE2b-256 | 6904c13d073f374495ec850394bde4d867064fd9b3716e1a5028c1e0d5cc5644 |
Hashes for py2exe-0.13.0.2-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73038e8db9ad5676bfc92f0c9fa86234d3819750f6de4b1e02c41c87e53dea93 |
|
MD5 | 57664295039bf4cb0e5783d23cfc6e1c |
|
BLAKE2b-256 | 87d0726fed4ff98b3172a6943707f742d1728bd58b3aa9bdfb15ad5d9fcb1bd8 |
Hashes for py2exe-0.13.0.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ba94392e3ea252c441d7008f14e3a3bf5738ef424bf8546a6e083fdd84569d0 |
|
MD5 | d423f029a20285047ba225d7ff56080a |
|
BLAKE2b-256 | dfc39ea71c541afb432fb8cfb169e76175196341691748393fdb30fbf28f4bd8 |
Hashes for py2exe-0.13.0.2-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7f4629ebb966d5d8757d9c1a137260891c55c2e0eafc6d9ffa39e0442d34e46 |
|
MD5 | b928f4ed72eeb6509be548a8242e8852 |
|
BLAKE2b-256 | 045c435099d3b2a1807c24c7cebf42d0cdda279d2863b954bd61e8ce2a082121 |
Hashes for py2exe-0.13.0.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4be42d8dcf34c196b8e18b75e76116ac4a6e8f8e43871a026359b062bcb8a803 |
|
MD5 | 2eb25d3c6f3f01f2f3e84029b18f9a7e |
|
BLAKE2b-256 | c867616ceb7336d6ba8ac85c3f5492b4185f5ba5523578588134f89631922e51 |
Hashes for py2exe-0.13.0.2-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b240895430215c1e743cc7cba0d2aef7a506d11abea40a412b4724a806931cf |
|
MD5 | 5506a7300f0bad5ec638a60b1aea9feb |
|
BLAKE2b-256 | 11cd2eda7f4ceab8550d07ba5376b1dbb2500f2013b12edabede95f6650cccf0 |
Hashes for py2exe-0.13.0.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d27266cd4ee03d307a158c86ec525c6d9665ba226bd7ff999ec2bda2f7dde87 |
|
MD5 | bfc9913105d208326d71b7a4ccd149ab |
|
BLAKE2b-256 | 59968442f7fce8dfdb9a3978213a91e925ac56b6e1e8bd910447777a503f5599 |
Hashes for py2exe-0.13.0.2-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a78c0f95cbd775c5e44da0db0bc7c257010bfe007bb22407369f439c391d834 |
|
MD5 | 2a4aff88be822eae6e1178cc6acd0125 |
|
BLAKE2b-256 | 0b2aa5e768cc330b84678c2d3420621bd34250aa2761c4b4ef0c34b5d875c484 |