Welcome to PyInstaller official website
PyInstaller is a program that freezes (packages) Python programs into
stand-alone executables, under Windows, Linux, Mac OS X, FreeBSD,
Solaris and AIX. Its main advantages over similar tools are that
PyInstaller works with Python 2.7 and 3.3—3.5, it builds smaller
executables thanks to transparent compression, it is fully
multi-platform, and use the OS support to load the dynamic libraries,
thus ensuring full compatibility.
The main goal of PyInstaller is to be compatible with 3rd-party
packages out-of-the-box. This means that, with PyInstaller, all the
required tricks to make external packages work are already
integrated within PyInstaller itself so that there is no user
intervention required. You'll never be required to look for tricks in
wikis and apply custom modification to your files or your setup
scripts. As an example, libraries like PyQt, Django or matplotlib
are fully supported, without having to handle plugins or external
data files manually. Check our compatibility list of Supported Packages
for details.
Feel free to join us in the effort! Please consult our Roadmap to
check our plans. Also usage reports are welcomed: let us know if
PyInstaller works for you and how, or what problems you found in using
it.
Check our list of Projects using PyInstaller.
Features
- Packaging of Python programs into standard executables, that work
on computers without Python installed.
- Multiplatform: works under
- Windows (32-bit and 64-bit),
- Linux (32-bit and 64-bit),
- Mac OS X (32-bit and 64-bit),
- contributed suppport for FreeBSD, Solaris and AIX.
- Multiversion: supports Python 2.7 and Python 3.3, 3.4 and 3.5.
- Flexible packaging mode:
- Single directory: build a directory containing an executable plus
all the external binary modules (.dll, .pyd, .so) used by the
program.
- Single file: build a single executable file, totally
self-contained, which runs without any external dependency.
- Custom: you can automate PyInstaller to do whatever packaging
mode you want through a simple script file in Python.
- Explicit intelligent support for many 3rd-packages (for hidden
imports, external data files, etc.), to make them work with
PyInstaller out-of-the-box (see Supported Packages).
- Full egg support: required .egg files are automatically
inspected for dependencies and bundled, and all the egg-specific
features are supported at runtime as well (entry points, etc.).
- Automatic support for binary libraries used through ctypes
(see the feature page for details).
- Support for automatic binary packing through the well-known
UPX compressor.
- Optional console mode (see standard output and standard error at
runtime).
Windows-specific features
- Support for code-signing executables.
- Full automatic support for CRTs: no
need to manually distribute MSVCR*.DLL, redist installers,
manifests, or anything else; true one-file applications that work
everywhere!
- Selectable executable icon.
- Fully configurable version resource section and manifests in
executable.
Downloads
The latest stable release of PyInstaller is 3.2.1.
(Change Log).
Release 3.2.1:
Stable, supports Python 2.7, 3.3–3.5
Development: supports Python 2.7, 3.3–3.5
See the full list of releases for older
(obsolete) releases.
See PyInstaller Logos for marketing materials.
License
PyInstaller is distributed under the GPL license (see the file
doc/LICENSE.GPL
in the source code), with a special exception which allows to use
PyInstaller to build and distribute non-free programs (including
commercial ones). In other words, you have no restrictions in
using PyInstaller as-is, but any kind of modifications to it
will have to comply with the GPL license. See also our FAQ.
Support
Bug reports
Look at the list of open bugs. You can report
bugs either anonymously or after registering to this website. If you
register, you will be able to followup on the tickets and receive
notifications.
Development
We are happy about contributions. How to Contribute should
provide all information you need.
Source Code Repository
You may browse the current repostory at the Repository Browser.
Or you may check out the current version by running:
git clone https://github.com/pyinstaller/pyinstaller.git
If you are interested in the "core" development, including tools and
processes, please refer to the Development section.
Maintainers
We would like to thank Gordon McMillan who wrote the original Python
Installer, and William Caban for his initial development and
maintenance effort without which PyInstaller would not exist today.