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.

    • tinyaes 1.0+ (only if using bytecode encryption). Instead of installing tinyaes, pip install pyinstaller[encryption] instead.

  • Windows (32bit/64bit):
    • 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.

    • Note that Windows on arm64 is not yet supported. If you have such a device and want to help us add arm64 support then please let us know on our issue tracker.

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

Uploaded Source

Built Distributions

pyinstaller-5.6.2-py3-none-win_amd64.whl (1.2 MB view details)

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

pyinstaller-5.6.2-py3-none-musllinux_1_1_x86_64.whl (595.7 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

pyinstaller-5.6.2-py3-none-musllinux_1_1_aarch64.whl (598.9 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

pyinstaller-5.6.2-py3-none-manylinux2014_s390x.whl (595.2 kB view details)

Uploaded Python 3

pyinstaller-5.6.2-py3-none-manylinux2014_i686.whl (598.8 kB view details)

Uploaded Python 3

pyinstaller-5.6.2-py3-none-macosx_10_13_universal2.whl (868.5 kB view details)

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

File details

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

File metadata

  • Download URL: pyinstaller-5.6.2.tar.gz
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.4

File hashes

Hashes for pyinstaller-5.6.2.tar.gz
Algorithm Hash digest
SHA256 865025b6809d777bb0f66d8f8ab50cc97dc3dbe0ff09a1ef1f2fd646432714fc
MD5 8f1b3a5de0d18efbc16e6e9ee1b21d2f
BLAKE2b-256 369532b67f2b6945c34400524284e582025269cf992c6994ff36ed8899e4cf58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.6.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 04ecf805bde2ef25b8e3642410871e6747c22fa7254107f155b8cd179c2a13b6
MD5 b079698729ca5a360d485631b1fd326f
BLAKE2b-256 e58a5b093e5d8381fd4af783e81d5a32afb090bc6b46909f62e97331e2d79e5b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-5.6.2-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.1 CPython/3.10.4

File hashes

Hashes for pyinstaller-5.6.2-py3-none-win32.whl
Algorithm Hash digest
SHA256 e026adc92c60158741d0bfca27eefaa2414801f61328cb84d0c88241fe8c2087
MD5 34e255d76ae518b2728cd3c039d4aadc
BLAKE2b-256 681b1bb18715188d1947a4cb2d1234ffdb585aa8b0bf7045de3db30147de1a79

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.6.2-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 d888db9afedff290d362ee296d30eb339abeba707ca1565916ce1cd5947131c3
MD5 51103da9c2a1e2a129da69d247369da3
BLAKE2b-256 0bfcb00209974b0353a17c0b1a3c69dc574a44e0c6b4481cd247da6628bfd6ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.6.2-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 77888f52b61089caa0bee70809bbce9e9b1c613c88b6cb0742ff2a45f1511cbb
MD5 feb943b28d2ab287cea80dcb061f8eff
BLAKE2b-256 d0ee83b39621d2590750a2b5f91b954760815c0d2fe8a23455570f44d1e73f73

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.6.2-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 181856ade585b090379ae26b7017dc2c30620e36e3a804b381417a6dc3b2a82b
MD5 898bf843a77b4bdb8d68dbcf8d9dc6e4
BLAKE2b-256 db2772d7446a2fafc72cfd5da5e79a0f75f48d559c911ebcf011d2b680890ecc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.6.2-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 32727232f446aa96e394f01b0c35b3de0dc3513c6ba3e26d1ef64c57edb1e9e5
MD5 1966280e66c965dbaf1c87aed7c0c865
BLAKE2b-256 cff48931138d0dccdd618404db543f752a592598870b09bfe29d56696d72e3a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.6.2-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 0d167d57036219914188f1400427dd297b975707e78c32a5511191e607be920a
MD5 3b20b59b1456076ddd0a112cccbfa0ed
BLAKE2b-256 3fe0fed5a9ec6dc675cb3db0d1a32d862ef935387e9aca90d3c25c6c55222b3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.6.2-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 eb083c25f711769af0898852ea30dcb727ba43990bbdf9ffbaa9c77a7bd0d720
MD5 cae36aa905d77424770a7bbc64f112cc
BLAKE2b-256 621ebf412719a17796f3d1d3908f021b8d74060df1a127ae36877c4e253320e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.6.2-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 05df5d2b9ca645cc6ef61d8a85451d2aabe5501997f1f50cd94306fd6bc0485d
MD5 d31e83379e122b674b633c51a89e509c
BLAKE2b-256 ffe090795b7c663aa3b4c6a398b56124dcbf37ba2655f10967a1e11e3c9bbfc6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.6.2-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 1b1e3b37a22fb36555d917f0c3dfb998159ff4af6d8fa7cc0074d630c6fe81ad
MD5 98153890b1ccad7da7432b4cdef99da1
BLAKE2b-256 a3eeb52a6f7d790e0d15929d0aa0b2981d1d6595331459ad7e0b18ed23e25701

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