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

Uploaded Source

Built Distributions

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

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

pyinstaller-5.6-py3-none-musllinux_1_1_x86_64.whl (595.3 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

pyinstaller-5.6-py3-none-musllinux_1_1_aarch64.whl (598.5 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

pyinstaller-5.6-py3-none-manylinux2014_x86_64.whl (594.5 kB view details)

Uploaded Python 3

pyinstaller-5.6-py3-none-manylinux2014_s390x.whl (594.8 kB view details)

Uploaded Python 3

pyinstaller-5.6-py3-none-manylinux2014_ppc64le.whl (602.1 kB view details)

Uploaded Python 3

pyinstaller-5.6-py3-none-manylinux2014_i686.whl (598.4 kB view details)

Uploaded Python 3

pyinstaller-5.6-py3-none-manylinux2014_aarch64.whl (596.8 kB view details)

Uploaded Python 3

pyinstaller-5.6-py3-none-macosx_10_13_universal2.whl (868.1 kB view details)

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

File details

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

File metadata

  • Download URL: pyinstaller-5.6.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.tar.gz
Algorithm Hash digest
SHA256 2a0455e4cc4d54ff760f99fb6194ab68862d3552e970740a2dfa36edbc05251b
MD5 22320ef423b38db0df6d56bc3a786dcf
BLAKE2b-256 fa92b4970de16530fe2bfd0dee6e8bea88b752bf7913dcb45ac23ec0627434e8

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyinstaller-5.6-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 3c980d673a29f2a7f8194497bcb91bf17a649f481590727952f1b583859324bd
MD5 a16349f71747a05036f14c049e15db1c
BLAKE2b-256 2d33e2c1fa7da557d56e41491d0cfe00ca5987f66292b5e04c1b2493f58dc062

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-5.6-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-py3-none-win32.whl
Algorithm Hash digest
SHA256 76bc9f87f256427a578eda27916d85acb291a292ca631326f4b22f623bd0d391
MD5 75cd8ac22445461ab9f09f600c51e7a3
BLAKE2b-256 2aee75609051326d86c4c4c90c83ac959500fdc6db530b455d73b056b751103a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.6-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 d76de14a8b8370d47d69fab92c098299eac38a99ce603ddc3a42bd5681dfcaff
MD5 ae64cf2bc7b46ae4c08088468687ba23
BLAKE2b-256 f9948ee9fbefe29e937e3ddb0f71a286e0c6e935304a778212e80b332a2bde69

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.6-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 1eca0a42088580880ade5dca45fca81cbbb18e65ceb90684d57e6ceb699b013b
MD5 290874799a890ca77133fa2c3e2d0563
BLAKE2b-256 d619bcd643369b2b841542ad381cdb7382aa7307ccd5c86a58f60bebdbff5030

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.6-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 72830fa5d2702bb7c1af5e2d55467e0c0c89738fc302f49870ed273ec494371f
MD5 1f623a788862d7e3da993d6e555d7c55
BLAKE2b-256 eed07d3c7a1d052e00878af0cd2f562aba12b4b4bdf10f5434f1ce253ac48222

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.6-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 692c479f679f4cc4f41a6a6ef4742176ca1f62338e5a3318601cf62d60cd0832
MD5 a154cbfc9e027e7b9d5e178f0553f6fb
BLAKE2b-256 59980a45c807489c2df3c3ae02be71f31f3f4f79b48119cfd52a6e4ee0b05a6d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.6-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 dca5625bccf8c98bb2a1e2760022de2f1a1a1be8744182fd3e640bc7bae75e30
MD5 bf174ec8a77ccb346f79b0dfb52fb0df
BLAKE2b-256 0edac5c687e4318df819c418822c8654017f5b5b3a71f385de159f69936cf514

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.6-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0458585457d458abe9eafd0c4c4289054448349f2a2b2a7fcf876a4796a99a53
MD5 71f0d607b5d04f74186edddae2fcd032
BLAKE2b-256 800ab2003fece6a1289b838b38643e67b4fdf97a50fff0c6e2f9022d788efec0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.6-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bccacd5f14ebd2cd3a34ffc9c9dc31feef72c077acf06be4035d5153d24f782b
MD5 cc857322a0ba6fdbad1afca818c21eb6
BLAKE2b-256 74684e2bc1ccc7abae7b5a2518e724bc82d46dda2fe45a14133fdbf6ea114df1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.6-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 9e2138877321211cbf302f6fb930614aa2070ccf01b97ef4d4ed9e219c57b3b6
MD5 c862ed3b74e9b4a20b7f223db5b61d9a
BLAKE2b-256 2cba8b9dc9b2a6b41ec04ac826f128d3b871a66d943276aeb324b5206145f80f

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