Skip to main content

PyInstaller bundles a Python application and all its dependencies into a single package.

Project description

PyPI PyPI - Python Version Read the Docs (version) PyPI - Downloads

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.

Documentation:

https://pyinstaller.org/

Code:

https://github.com/pyinstaller/pyinstaller

PyInstaller reads a Python script written by you. It analyzes your code to discover every other module and library your script needs in order to execute. Then it collects copies of all those files – including the active Python interpreter! – and puts them with your script in a single folder, or optionally in a single executable file.

PyInstaller is tested against Windows, macOS, 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 is not tested against them as part of the continuous integration tests.

Main Advantages

  • Works out-of-the-box with any Python version 3.7-3.11.

  • Fully multi-platform, and uses the OS support to load the dynamic libraries, thus ensuring full compatibility.

  • Correctly bundles the major Python packages such as numpy, PyQt5, PySide2, PyQt6, PySide6, wxPython, matplotlib and others out-of-the-box.

  • Compatible with many 3rd-party packages out-of-the-box. (All the required tricks to make external packages work are already integrated.)

  • Works with code signing on macOS.

  • Bundles MS Visual C++ DLLs on Windows.

Installation

PyInstaller is available on PyPI. You can install it through pip:

pip install pyinstaller

Requirements and Tested Platforms

  • Python:
    • 3.7-3.11. Note that Python 3.10.0 contains a bug making it unsupportable by PyInstaller. PyInstaller will also not work with beta releases of Python 3.12.

  • Windows (32bit/64bit/ARM64):
    • PyInstaller should work on Windows 7 or newer, but we only officially support Windows 8+.

    • Support for Python installed from the Windows store without using virtual environments requires PyInstaller 4.4 or later.

  • Linux:
    • GNU libc based distributions on architectures x86_64, aarch64, i686, ppc64le, s390x.

    • musl libc based distributions on architectures x86_64, aarch64.

    • ldd: Console application to print the shared libraries required by each program or shared library. This typically can be found in the distribution-package glibc or libc-bin.

    • objdump: Console application to display information from object files. This typically can be found in the distribution-package binutils.

    • objcopy: Console application to copy and translate object files. This typically can be found in the distribution-package binutils, too.

    • Raspberry Pi users on armv5-armv7 should add piwheels as an extra index url then pip install pyinstaller as usual.

  • macOS (x86_64 or arm64):
    • macOS 10.15 (Catalina) or newer.

    • Supports building universal2 applications provided that your installation of Python and all your dependencies are also compiled universal2.

Usage

Basic usage is very simple, just run it against your main script:

pyinstaller /path/to/yourscript.py

For more details, see the manual.

Untested Platforms

The following platforms have been contributed and any feedback or enhancements on these are welcome.

  • FreeBSD
    • ldd

  • Solaris
    • ldd

    • objdump

  • AIX
    • AIX 6.1 or newer. PyInstaller will not work with statically linked Python libraries.

    • ldd

  • Linux on any other libc implementation/architecture combination not listed above.

Before using any contributed platform, you need to build the PyInstaller bootloader. This will happen automatically when you pip install pyinstaller provided that you have an appropriate C compiler (typically either gcc or clang) and zlib’s development headers already installed.

Support

Changes in this Release

You can find a detailed list of changes in this release in the Changelog section of the manual.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyinstaller-5.11.0.tar.gz (4.1 MB view details)

Uploaded Source

Built Distributions

pyinstaller-5.11.0-py3-none-win_arm64.whl (1.2 MB view details)

Uploaded Python 3 Windows ARM64

pyinstaller-5.11.0-py3-none-win_amd64.whl (1.3 MB view details)

Uploaded Python 3 Windows x86-64

pyinstaller-5.11.0-py3-none-win32.whl (1.2 MB view details)

Uploaded Python 3 Windows x86

pyinstaller-5.11.0-py3-none-musllinux_1_1_x86_64.whl (654.0 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

pyinstaller-5.11.0-py3-none-musllinux_1_1_aarch64.whl (657.2 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

pyinstaller-5.11.0-py3-none-manylinux2014_i686.whl (657.3 kB view details)

Uploaded Python 3

pyinstaller-5.11.0-py3-none-macosx_10_13_universal2.whl (927.2 kB view details)

Uploaded Python 3 macOS 10.13+ universal2 (ARM64, x86-64)

File details

Details for the file pyinstaller-5.11.0.tar.gz.

File metadata

  • Download URL: pyinstaller-5.11.0.tar.gz
  • Upload date:
  • Size: 4.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for pyinstaller-5.11.0.tar.gz
Algorithm Hash digest
SHA256 cb87cee0b3c81ccd74d4bf3f4faf03b5e1e39bb91f1a894b2ce4cd22363bf779
MD5 6423426c19a849b86281ddb3ce79ebb9
BLAKE2b-256 b78bac00e4b615aea76c3b3d61592791ed739468ab6d27e314f6ad24e02bdd0f

See more details on using hashes here.

File details

Details for the file pyinstaller-5.11.0-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for pyinstaller-5.11.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 036a062a228af41f6bb6370a4e87cef34858cc839200a07ace7f8738ef64ad86
MD5 9bef74d5d7be8c03e040e4bb019ee5ec
BLAKE2b-256 3fde142b1f6d456dc7299de591c120eeeacd9e36987728a8b88d45dfd1e2a85d

See more details on using hashes here.

File details

Details for the file pyinstaller-5.11.0-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for pyinstaller-5.11.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 42fdea67e4c2217cedd54d17d1d402736df3ba718db2b497df65df5a68ae4f93
MD5 54869280d9c15771e12539393724a82d
BLAKE2b-256 969d0526e65a112578f2236bd3a0c32856538c9f309367f1d8be17a7d252a1e7

See more details on using hashes here.

File details

Details for the file pyinstaller-5.11.0-py3-none-win32.whl.

File metadata

  • Download URL: pyinstaller-5.11.0-py3-none-win32.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for pyinstaller-5.11.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 049cdc3524aefb5ca015a63d2c81b6bf1567cc818ac066859fbfde702c6165d3
MD5 fe5db2822a02e0dd04ddbbde59bebe70
BLAKE2b-256 2c36f8207716a6283e7eff4ab98b9ea7a542fbef29e7d0c622d50ae9c475576e

See more details on using hashes here.

File details

Details for the file pyinstaller-5.11.0-py3-none-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pyinstaller-5.11.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 b8a4f6834e5c85150948e22c74dd3ab8b98aa4ccdf964d880ac14d2f78d9c1a4
MD5 79f9df653eb30b13f3222ecf6c254ab1
BLAKE2b-256 ac8a59db374ec3522af36b378fbe6818c2eb2e1d5b5ba8b92c089f4f86f7fc54

See more details on using hashes here.

File details

Details for the file pyinstaller-5.11.0-py3-none-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for pyinstaller-5.11.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 0af9d11a09ce217d32f95c79c984054457b310671387ff32bae1496876308556
MD5 6d9a66fad226ec851c4791d4d2911dd9
BLAKE2b-256 ec615b264f5a06721e19b52ddd94883e27209da3cdfed06ffe7561a56faecc26

See more details on using hashes here.

File details

Details for the file pyinstaller-5.11.0-py3-none-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyinstaller-5.11.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b4cac0e7b0d63c6a869843113008f59fd5b38b2959ffa6059e7fac4bb05de92b
MD5 87b39d8de5a14bdcbd3d807b3408ba02
BLAKE2b-256 d31b77edecaf20239aff9fc6088d24f391bc3f4cffc9a9fc00e61c1905454ca9

See more details on using hashes here.

File details

Details for the file pyinstaller-5.11.0-py3-none-manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for pyinstaller-5.11.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 2a1fe6d0da22f207cfa4b3221fe365503cba071c77aac19f76a75503f67d9ff9
MD5 c9bb185f627b7647bca85b3c4fa1a7f3
BLAKE2b-256 7557191fddf2031ec532b926e0423c640fec27f40758fb1164f7e9d6442f256f

See more details on using hashes here.

File details

Details for the file pyinstaller-5.11.0-py3-none-manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for pyinstaller-5.11.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 a445a91b85c9a1ea3985268643a674900dd86f244cc4be4ff4ec4c6367ff99a9
MD5 0fbdacb4e9442f61f6d2387ce3695cd9
BLAKE2b-256 670957ba28093a564e4cb552b3e752a5e2a0cf5868fc02494b58714a82f78719

See more details on using hashes here.

File details

Details for the file pyinstaller-5.11.0-py3-none-manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pyinstaller-5.11.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e359571327bbef434fc61324891399f9117efbb685b5065234eebb01713650a8
MD5 058620aba0fdf21db7e4eb14cc54a3ed
BLAKE2b-256 09ecf95316587a05412849e0cc225e169b27139b76b004c49cc8cd9a76535afb

See more details on using hashes here.

File details

Details for the file pyinstaller-5.11.0-py3-none-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyinstaller-5.11.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b3c6299fd7526c6ca87ea5f9017fb1928d47046df0b9f983d6bbd893801010dc
MD5 148c4d540fcb0aed2524ebcfbf44eea1
BLAKE2b-256 0ee22e2e7ab072995a59abed2685dc985b4ac1b810ba1be983dc65043f5aeca5

See more details on using hashes here.

File details

Details for the file pyinstaller-5.11.0-py3-none-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for pyinstaller-5.11.0-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 8454bac8f3cb2219a3ce2227fd039bdaf943dcba60e8c55732958ea3a6d81263
MD5 e20e67d2362fe90aae4124d3fc381db3
BLAKE2b-256 a20187094ac853460c897f7503966a2295a945e81a41b7c19c793cf4d71980b6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page