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.15.

  • 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 third-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.15. 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.16.

  • Windows (32-bit/64-bit/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.21.0.tar.gz (4.1 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3Windows x86

pyinstaller-6.21.0-py3-none-musllinux_1_1_x86_64.whl (753.8 kB view details)

Uploaded Python 3musllinux: musl 1.1+ x86-64

pyinstaller-6.21.0-py3-none-musllinux_1_1_aarch64.whl (753.9 kB view details)

Uploaded Python 3musllinux: musl 1.1+ ARM64

pyinstaller-6.21.0-py3-none-manylinux2014_x86_64.whl (754.8 kB view details)

Uploaded Python 3

pyinstaller-6.21.0-py3-none-manylinux2014_s390x.whl (755.0 kB view details)

Uploaded Python 3

pyinstaller-6.21.0-py3-none-manylinux2014_ppc64le.whl (759.2 kB view details)

Uploaded Python 3

pyinstaller-6.21.0-py3-none-manylinux2014_i686.whl (760.9 kB view details)

Uploaded Python 3

pyinstaller-6.21.0-py3-none-manylinux2014_aarch64.whl (748.5 kB view details)

Uploaded Python 3

pyinstaller-6.21.0-py3-none-macosx_10_13_universal2.whl (1.1 MB view details)

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

File details

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

File metadata

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

File hashes

Hashes for pyinstaller-6.21.0.tar.gz
Algorithm Hash digest
SHA256 bb9fab705983e393a2d1cac77d6972513057ad800215fd861dc15ff5272e98fd
MD5 e870682ab7fbb44fdc400cbb64693c33
BLAKE2b-256 d54dec706c3fcf39e26888c35b39615ff4d5865d184069666c47492cff1fbe50

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.21.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.11

File hashes

Hashes for pyinstaller-6.21.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 f13c95c9c03fb567217135919f93815c305813126780b0ed6e0123cb8acaf025
MD5 5bd92566c1fe995b76cecb6cba971c42
BLAKE2b-256 dc7521b51523ce8d96629b71311775a0a65f5f5a872124ab0de33e5c848f8bff

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.21.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.11

File hashes

Hashes for pyinstaller-6.21.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 7fae06c494ce0ebfe6bd3055c0e409def884f63af2e3705d06bd431ad9237fc7
MD5 83a9ae6cf565d4ddc18dbdb904f12590
BLAKE2b-256 c1faca1d7e5257dd8566a9dfc0dfb02f8a8075eeb53d4b2d3c579f1276759042

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.21.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.11

File hashes

Hashes for pyinstaller-6.21.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 c6b28d30d8fd99ce162ff3aab5013ed44dbfb747566b1f01b9bed7964d7c14e9
MD5 f1510019846c720975e04daeea10e9b0
BLAKE2b-256 c9761ce8a27ce62ba8cf3a87c9ce6d575610f4e55d7cb0123e7512fc3f4b921a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.21.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 42395ec76df8e8120c36b13339d9db8cab83e316a12839ee303cc00fc941bb74
MD5 0f7cb847453b294225683f760f09edb5
BLAKE2b-256 518fc22df1f6837784ac349057ba693f08e7b1ca7a0e06f9c33c63bc6280007b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.21.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 5fa56746c1e76f93634d018502301378a2d0c382553d37d8c3c34ff436c12dd1
MD5 241cdf423c854ccde5ae32af01a2dcfe
BLAKE2b-256 4b43d77779439d8c6c2e27a77bcfbd1d5cc0f568ebb611bb472b11af81b5f177

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.21.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 605169523a6b5ace39f13dfbff21add9f2bc43df99c7daf9394fefb2c45e8b6f
MD5 3ab1f5d92217a80414c4f29dac53754c
BLAKE2b-256 9f0951b8905714b733bac66dbc041a7821372d70d888d273ae474c4037d4202d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.21.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 697532279f535ad572bda613db4f821540e235c7854ca6da4d3bf0373f4415ee
MD5 0623403824e933cad9eb52babe68c2ce
BLAKE2b-256 ddd5ea7878cf9924ed30d946d8288777424e6d069d94f5bde56b4d0890069664

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.21.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 4e3108b3f02384560da70e39b8bf22b0ad597d02bd68a40d76ea91c1cfa00cad
MD5 e44239f8585f61ec299667d3c64c9cf5
BLAKE2b-256 8a13f0e48fbdfd1d05d948157121cea8b1b823dcb89efe6934b71fdd8bdb3f0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.21.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6b6374d652107dd4a2eeece903ff82bb4045bb5e1006c5a158a6dcdbefe84bf2
MD5 ea011ebd602ba8f60d04e50962a7e672
BLAKE2b-256 3d8f88fff4e403873b1e22286911350e75ff00db014aa08e57045da9d4328993

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.21.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7071d4b094d5b40deeef5fa3d3b98a1b846087f7562b49209663d5f9281fe251
MD5 b724201bebd757b8761476f3f89980b4
BLAKE2b-256 3083b591295c352ef464c50b4c6ffff1c4f771d875c9e833f578d1b9f564f6b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.21.0-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 327d132389f37912609e01be62810cf96b5aa95b613903e4b8692e0d12fb0eda
MD5 ac007c4e9238391b6e488b0b14cfaecd
BLAKE2b-256 0c4a53cf98bf66daed012dc9cd78c8203f19a675d696f2fc12afcf8c5049a0e0

See more details on using hashes here.

Supported by

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