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.15.0.tar.gz (4.3 MB view details)

Uploaded Source

Built Distributions

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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3Windows x86

pyinstaller-6.15.0-py3-none-musllinux_1_1_x86_64.whl (731.1 kB view details)

Uploaded Python 3musllinux: musl 1.1+ x86-64

pyinstaller-6.15.0-py3-none-musllinux_1_1_aarch64.whl (731.3 kB view details)

Uploaded Python 3musllinux: musl 1.1+ ARM64

pyinstaller-6.15.0-py3-none-manylinux2014_x86_64.whl (732.2 kB view details)

Uploaded Python 3

pyinstaller-6.15.0-py3-none-manylinux2014_s390x.whl (732.2 kB view details)

Uploaded Python 3

pyinstaller-6.15.0-py3-none-manylinux2014_ppc64le.whl (735.4 kB view details)

Uploaded Python 3

pyinstaller-6.15.0-py3-none-manylinux2014_i686.whl (737.5 kB view details)

Uploaded Python 3

pyinstaller-6.15.0-py3-none-manylinux2014_aarch64.whl (726.3 kB view details)

Uploaded Python 3

pyinstaller-6.15.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.15.0.tar.gz.

File metadata

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

File hashes

Hashes for pyinstaller-6.15.0.tar.gz
Algorithm Hash digest
SHA256 a48fc4644ee4aa2aa2a35e7b51f496f8fbd7eecf6a2150646bbf1613ad07bc2d
MD5 9870de7e52f3be9ac85e3aef9a5fa5c0
BLAKE2b-256 6417b2bb4de22650adbeef401fa82a1b43028976547a8728602e4d29735b455e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.15.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 f43c035621742cf2d19b84308c60e4e44e72c94786d176b8f6adcde351b5bd98
MD5 1a6d53ad2db281e660835fed4362e73a
BLAKE2b-256 5b8672159af032b9db36f2470a3b085f79277ec1c38e7e48f8c5dc1ed16dc4e1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.15.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.1.0 CPython/3.12.0

File hashes

Hashes for pyinstaller-6.15.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 cbea297e16eeda30b41c300d6ec2fd2abea4dbd8d8a32650eeec36431c94fcd9
MD5 2ab7053c44ed1f7eeb90a31a3f34ffe0
BLAKE2b-256 09ab6a45186c7f8e34c422faecd72580116a67d068158c57faa2d2f6d01faa7f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.15.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.1.0 CPython/3.12.0

File hashes

Hashes for pyinstaller-6.15.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 60da8f1b5071766b45c0f607d8bc3d7e59ba2c3b262d08f2e4066ba65f3544a2
MD5 01827a6fd4564521a5cea9052a9f304b
BLAKE2b-256 883128956c534991f289e2f981c715730b6241e75dc6295737a8cbd050a0cc8c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.15.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 18f743069849dbaee3e10900385f35795a5743eabab55e99dcc42f204e40a0db
MD5 9dbb0ca7cfa8bb2716578e75cfdbd49e
BLAKE2b-256 675e4e20e1c0e5791b09b69bef3ac921fd0cd25551b56879324ad999b92fa045

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.15.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 22193489e6a22435417103f61e7950363bba600ef36ec3ab1487303668c81092
MD5 41b875873e459cc30b137c4a73b2ab06
BLAKE2b-256 4d61962b2eb79ef225233e2d6e04600e998935328011dfb2fa775b1dd16b943a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.15.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b9ebf16ed0f99016ae8ae5746dee4cb244848a12941539e62ce2eea1df5a3f95
MD5 715db6cf203e9622c697b809b33c5e39
BLAKE2b-256 db3d267a7dddd0647de95d260780050ccd8228ab29d2b9edea54ed1f56800967

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.15.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 b4df862adae7cf1f08eff53c43ace283822447f7f528f72e4f94749062712f15
MD5 9be65c8d25ede4d961359e6505b06666
BLAKE2b-256 327eff25648276f15e2e77fc563d36d8cfcd917e077bf2a172420df3588601b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.15.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 eb902d0fed3bb1f8b7190dc4df5c11f3b59505767e0d56d1ed782b853938bbf3
MD5 e9301e093e27338aebcba9631e37cc4d
BLAKE2b-256 09d6e4477feab7c8379fb49e7ec95c82d0a69ad88f6ccc247f76bef3cb0e3432

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.15.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c33e6302bc53db2df1104ed5566bd980b3e0ee7f18416a6e3caa908c12a54542
MD5 af81b84d456fc458d899d1c579c8af37
BLAKE2b-256 77837f498fba0154c57eb5fc93eb9680a2dbadb9f780a3389fb85b8d79683378

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.15.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cbcc8eb77320c60722030ac875883b564e00768fe3ff1721c7ba3ad0e0a277e9
MD5 c62058d3caff97339d14fcf5245482c7
BLAKE2b-256 2d2a7b50593b419db43e48d9bdeebaac0ff92a5fe035f3c30f87ca3e1650d7e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.15.0-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 9f00c71c40148cd1e61695b2c6f1e086693d3bcf9bfa22ab513aa4254c3b966f
MD5 c7a9513886b5dea028291ce49fa9e19d
BLAKE2b-256 24ddd5c8a127446adda954f68ea7fac22772f7ab8656ad4b06df396d82574ca9

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