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.8-3.13.

  • 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.8-3.14. 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.15.

  • 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-6.16.0.tar.gz (4.0 MB view details)

Uploaded Source

Built Distributions

pyinstaller-6.16.0-py3-none-win_arm64.whl (1.3 MB view details)

Uploaded Python 3Windows ARM64

pyinstaller-6.16.0-py3-none-win_amd64.whl (1.4 MB view details)

Uploaded Python 3Windows x86-64

pyinstaller-6.16.0-py3-none-win32.whl (1.3 MB view details)

Uploaded Python 3Windows x86

pyinstaller-6.16.0-py3-none-musllinux_1_1_x86_64.whl (732.8 kB view details)

Uploaded Python 3musllinux: musl 1.1+ x86-64

pyinstaller-6.16.0-py3-none-musllinux_1_1_aarch64.whl (732.9 kB view details)

Uploaded Python 3musllinux: musl 1.1+ ARM64

pyinstaller-6.16.0-py3-none-manylinux2014_x86_64.whl (733.8 kB view details)

Uploaded Python 3

pyinstaller-6.16.0-py3-none-manylinux2014_s390x.whl (734.1 kB view details)

Uploaded Python 3

pyinstaller-6.16.0-py3-none-manylinux2014_ppc64le.whl (737.1 kB view details)

Uploaded Python 3

pyinstaller-6.16.0-py3-none-manylinux2014_i686.whl (739.2 kB view details)

Uploaded Python 3

pyinstaller-6.16.0-py3-none-manylinux2014_aarch64.whl (728.0 kB view details)

Uploaded Python 3

pyinstaller-6.16.0-py3-none-macosx_10_13_universal2.whl (1.0 MB view details)

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

File details

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

File metadata

  • Download URL: pyinstaller-6.16.0.tar.gz
  • Upload date:
  • Size: 4.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for pyinstaller-6.16.0.tar.gz
Algorithm Hash digest
SHA256 53559fe1e041a234f2b4dcc3288ea8bdd57f7cad8a6644e422c27bb407f3edef
MD5 868dc0309a20e835d9eaed9e893afa77
BLAKE2b-256 94941f62e95e4a28b64cfbb5b922ef3046f968b47170d37a1e1a029f56ac9cb4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.16.0-py3-none-win_arm64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for pyinstaller-6.16.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 d0af8a401de792c233c32c44b16d065ca9ab8262ee0c906835c12bdebc992a64
MD5 391f90c54db30750e22d63108b213aeb
BLAKE2b-256 caf44dfcf69b86d60fcaae05a42bbff1616d48a91e71726e5ed795d773dae9b3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.16.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for pyinstaller-6.16.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 bc10eb1a787f99fea613509f55b902fbd2d8b73ff5f51ff245ea29a481d97d41
MD5 f4d30566f947c19ff6e8ecc1d03083cf
BLAKE2b-256 aa992005efbc297e7813c1d6f18484aa94a1a81ce87b6a5b497c563681f4c4ea

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.16.0-py3-none-win32.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for pyinstaller-6.16.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 6d5f8617f3650ff9ef893e2ab4ddbf3c0d23d0c602ef74b5df8fbef4607840c8
MD5 add806b230c9513140122b960fe3ede1
BLAKE2b-256 a314cabe9bc5f60b95d2e70e7d045ab94b0015ff8f6c8b16e2142d3597e30749

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.16.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 d1ebf84d02c51fed19b82a8abb4df536923abd55bb684d694e1356e4ae2a0ce5
MD5 5a8f3c98582faa3d531a48e7c4bd2600
BLAKE2b-256 2b00c6663107bdf814b2916e71563beabd09f693c47712213bc228994cb2cc65

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.16.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 c8b7ef536711617e12fef4673806198872033fa06fa92326ad7fd1d84a9fa454
MD5 7275b585db26e7b63064f8ac166856fb
BLAKE2b-256 11e4b6127265b42bef883e8873d850becadf748bc5652e5a7029b059328f3c31

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.16.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ba618a61627ee674d6d68e5de084ba17c707b59a4f2a856084b3999bdffbd3f0
MD5 0ccfc2a5b8627df1ac71805e1b049348
BLAKE2b-256 63c40f7daac4d062a4d1ac2571d8a8b9b5d6812094fcd914d139af591ca5e1ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.16.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 b1752488248f7899281b17ca3238eefb5410521291371a686a4f5830f29f52b3
MD5 2be62a8901b97a01f0f9a0bb0fc9598c
BLAKE2b-256 71372f457479ef8fa2821cdb448acee2421dfb19fbe908bf5499d1930c164084

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.16.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 73ba72e04fcece92e32518bbb1e1fb5ac2892677943dfdff38e01a06e8742851
MD5 2b81193cf18a5e7a5a81a79c50c80320
BLAKE2b-256 c63e451dc784a8fcca0fe9f9b6b802d58555364a95b60f253613a2c83fc6b023

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.16.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0a48f55b85ff60f83169e10050f2759019cf1d06773ad1c4da3a411cd8751058
MD5 cbf8b017cdbe589c7d353c2daabf5592
BLAKE2b-256 7adbc8bb47514ce857b24bf9294cf1ff74844b6a489fa0ab4ef6f923288c4e38

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.16.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b756ddb9007b8141c5476b553351f9d97559b8af5d07f9460869bfae02be26b0
MD5 7f0d89ea851f0a2186b0d7a18d5164e7
BLAKE2b-256 4ed0f18fedde32835d5a758f464c75924e2154065625f09d5456c3c303527654

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.16.0-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 7fd1c785219a87ca747c21fa92f561b0d2926a7edc06d0a0fe37f3736e00bd7a
MD5 a03ed6598371cabd0006b25a8b0755f7
BLAKE2b-256 7b0ac42ce6e5d3de287f2e9432a074fb209f1fb72a86a72f3903849fdb5e4829

See more details on using hashes here.

Supported by

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