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.
This list tracks compatibility status of third-party packages with PyInstaller.
Most packages will work out of the box with PyInstaller.
This is especially true for pure Python packages and for packages not requiring additional files.
As for the packages in the Python standard library we only list the exceptions that don't work correctly; thus, if not listed, it works correctly.
This list is largely incomplete. You are encouraged to try anyway. If you find a mistake or want to do some additions, please edit this table or write to the mailing list.
|babel||OK||Fully supported, including "localedata" external data files (automatically handled).|
|ctypes||OK||Features/CtypesDependencySupport in PyInstaller 1.4+|
|Django||OK||see Recipe Executable From Django|
|matplotlib||OK||Fully supported, including external data files (automatically packaged by PyInstaller).|
|PyGObject (GTK3/GStreamer)||OK||Must use unreleased pyinstaller version|
|PyQt4||OK||Full support, including plugins. See Recipe PyQt4 API Version|
|PyQt5||OK||Full support, including plugins.|
|Python for .NET||OK||Reported to work correctly with 2.0.|
|PySide||partial||Qt plugins are not handled.|
|wxPython||OK||Remember to use windowed mode to get correct theming.|
|obfsproxy||OK||Works with PyInstaller 2.1+ developmental branch.|