Welcome to PyInstaller official website
PyInstaller is a program that converts (packages) Python programs into stand-alone executables, under Windows, Linux, Mac OS X, Solaris and AIX. Its main advantages over similar tools are that PyInstaller works with any version of Python since 2.3, 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 SupportedPackages.
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 ProjectsUsingPyInstaller.
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),
- experimentally Solaris and AIX.
- Multiversion: works under any version of Python from 2.3 up to 2.7.
- 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 SupportedPackages).
- Full single-file 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.).
- Partial directory EGG support: required .egg directories are automatically inspected for dependencies and bundled, but egg-specific features will not work at runtime.
- Automatic support for binary libraries used through ctypes (see Features/CtypesDependencySupport 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! (see Features/Python26Win)
- Selectable executable icon.
- Fully configurable version resource section and manifests in executable.
- Support for building COM servers.
- Mac-specific features:
- Support for bundles (see Features/MacOsCompatibility)
Downloads
The latest stable release of PyInstaller is 2.0 (Change Log).
File | MD5 | Description | Python Version |
Release 2.0 | |||
PyInstaller 2.0 (tar.bz2) | c62dd506bcde230d87ea11a1c316b590 | Stable Release | 2.3 - 2.7 |
PyInstaller 2.0 (zip) | 19350c07632e4deef5f4ecf64a556637 | Stable Release | 2.3 - 2.7 |
Development | |||
Latest development code (zip, tar.gz) | 2.4 - 2.7 |
See OldDownloads for older (obsolete) packages.
See PyInstaller Logos for marketing materials.
Documentation
- Documentation for version 2.0: [html] [pdf]
- Manual for development version: [html] [pdf]
- See the list of SupportedPackages
- Read our FAQ and have a look at the recipes.
- If your packed application does not run as expected, please read If Thing Go Wrong.
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.
Bug reports
Please have a look at the FAQ and HowtoReportBugs, which will help us a lot on solving the bug.
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.
Maintainers
- PyInstaller is currently maintained by Giovanni Bajo (rasky@…, @giovannibajo), Martin Zibricky and Hartmut Goebel.
- Simone Roselli (sroselli@…) is in charge of the trac installation.
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.
Mailing List
- PyInstaller Mailing List, also available at Gmane
- To subscribe to the mailing list, send an empty e-mail to pyinstaller+subscribe@… (you don't need a Google Account nor GMail! It's just a regular mailing list, use any e-mail address you wish)
IRC Channel
- IRC channel #pyinstaller at freenode, also available online at IRC webchat
Git Repository
- You may browse the current repostory at the Repository Browser
- Or you may check out the current version by running
git clone git://github.com/pyinstaller/pyinstaller.git
Contributions
We are happy about contributions. Development/HowtoContribute should provide all information you need.
Development
For information about the "core" development, including tools and processes, please refer to the Development-section.