PyInstaller Manual¶
- Version
PyInstaller 4.10
- Homepage
- Contact
- Authors
David Cortesi, based on structure by Giovanni Bajo & William Caban, based on Gordon McMillan’s manual
- Copyright
This document has been placed in the public domain.
PyInstaller bundles a Python application and all its dependencies into a single package. The user can run the packaged app without installing a Python interpreter or any modules. PyInstaller supports Python 3.6 or newer, and correctly bundles the major Python packages such as numpy, PyQt, Django, wxPython, and others.
PyInstaller is tested against Windows, Mac OS X, and GNU/Linux. However, it is not a cross-compiler: to make a Windows app you run PyInstaller in Windows; to make a GNU/Linux app you run it in GNU/Linux, etc. PyInstaller has been used successfully with AIX, Solaris, FreeBSD and OpenBSD but testing against them is not part of our continuous integration tests.
What’s New This Release¶
Release 4.0 adds support for 3rd-party packages to provide PyInstaller hooks along with the package. This allows Maintainers of other Python packages to deliver up-to-date PyInstaller hooks as part of their package. See our sample project for more information.
PyInstaller uses this option itself to provide updated hooks much faster: Many hooks are moved into the new package pyinstaller-hooks-contrib, which is updated monthly. This package is installed automatically when installing PyInstaller, but can also be updated independently.
Finally, this version drops support for Python 2.7, which is end-of-life since January 2020.. The minimum required version is now Python 3.6. The last version supporting Python 2.7 was PyInstaller 3.6.
Contents:
- Requirements
- License
- How To Contribute
- How to Install PyInstaller
- What PyInstaller Does and How It Does It
- Using PyInstaller
- Options
- Shortening the Command
- Running PyInstaller from Python code
- Using UPX
- Encrypting Python Bytecode
- Splash Screen (Experimental)
- The
pyi_splash
Module - Defining the Extraction Location
- Supporting Multiple Platforms
- Capturing Windows Version Data
- Building Mac OS X App Bundles
- Platform-specific Notes
- Run-time Information
- Using Spec Files
- Notes about specific Features
- When Things Go Wrong
- Advanced Topics
- Understanding PyInstaller Hooks
- Hook Configuration Options
- Building the Bootloader
- Changelog for PyInstaller
- Credits
- Contributions to PyInstaller 4.10
- Contributions to PyInstaller 4.9
- Contributions to PyInstaller 4.8
- Contributions to PyInstaller 4.7
- Contributions to PyInstaller 4.6
- Contributions to PyInstaller 4.5.1
- Contributions to PyInstaller 4.5
- Contributions to PyInstaller 4.4
- Contributions to PyInstaller 4.3
- Contributions to PyInstaller 4.2
- Contributions to PyInstaller 4.1
- Contributions to PyInstaller 4.0
- Contributions to PyInstaller 3.6
- Contributions to PyInstaller 3.5
- Contributions to PyInstaller 3.4
- Contributions to PyInstaller 3.3.1
- Contributions to PyInstaller 3.3
- Contributions to PyInstaller 3.2.1
- Contributions to PyInstaller 3.2
- Contributions to PyInstaller 3.1.1
- Contributions to PyInstaller 3.1
- Contributions to PyInstaller 3.0
- Contributions to PyInstaller 2.1 and older
- Man Pages
- Development Guide