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

  • 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.10. 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.11.

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

Uploaded Source

Built Distributions

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

Uploaded Python 3 Windows x86-64

pyinstaller-5.4-py3-none-win32.whl (1.1 MB view details)

Uploaded Python 3 Windows x86

pyinstaller-5.4-py3-none-musllinux_1_1_x86_64.whl (591.4 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

pyinstaller-5.4-py3-none-musllinux_1_1_aarch64.whl (594.6 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

pyinstaller-5.4-py3-none-manylinux2014_x86_64.whl (590.6 kB view details)

Uploaded Python 3

pyinstaller-5.4-py3-none-manylinux2014_s390x.whl (590.8 kB view details)

Uploaded Python 3

pyinstaller-5.4-py3-none-manylinux2014_ppc64le.whl (598.1 kB view details)

Uploaded Python 3

pyinstaller-5.4-py3-none-manylinux2014_i686.whl (594.5 kB view details)

Uploaded Python 3

pyinstaller-5.4-py3-none-manylinux2014_aarch64.whl (592.9 kB view details)

Uploaded Python 3

pyinstaller-5.4-py3-none-macosx_10_13_universal2.whl (864.2 kB view details)

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

File details

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

File metadata

  • Download URL: pyinstaller-5.4.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.4.tar.gz
Algorithm Hash digest
SHA256 dabacb2a1f87d9f669fe726b0e46b1de63a3c0948aad1caced0670de39b986d1
MD5 2823df471d57b3d5dd31b1b6e2ff299a
BLAKE2b-256 4c222f7a5308dcbf8baad514bfd8a7d453f133cf35b52055ab1668ced59e3ac5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-5.4-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.4-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 3b2c030406e4e5919861d2eea6008fc180ba91bbe4e9950e9bc884b61bf5a2b3
MD5 c2733831a075b92df3702510f5e069b4
BLAKE2b-256 3df2ab3fc30d6cf1b75efd6cb29c7288b9adc668c24b5d129cae1070dae45364

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-5.4-py3-none-win32.whl
  • Upload date:
  • Size: 1.1 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.4-py3-none-win32.whl
Algorithm Hash digest
SHA256 65111e13d9e7da154271ab574d956ea2aeb12995bf197d62390dc8f8089ebfe4
MD5 669bdc8df1afa88de9b890e21da1de16
BLAKE2b-256 b004827b7a0b089c783406d8ebd4717d0d445d31e294fde99b38b6259f89e4a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.4-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 e9ffeb0fe8ebe48a42c0cb9575ed09a974857cb1e8535e46d03d8b353acd3083
MD5 46fda0615689e73c84a038195d35826e
BLAKE2b-256 e4e45084d197000b7bb19e420e8dfab0081f9d2a51e67e81fd7b544793fd3995

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.4-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 207a0d1cc6f5aeb2a4e72f0a1ee6bd393ec9cfcb830297761ecc6d8bb63f428c
MD5 083074c3b480f4bda73fa46923c83197
BLAKE2b-256 f5b97c4c98afc963165c807c9584d3a94f2d4ba67e89500a02107baab25a9dd0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.4-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f508025ba320e4a05dc7b525ed153f81c41922986dc61bc490c363ab614b48f7
MD5 6a241d291b734dbd0c7f8b9b3c9c2e95
BLAKE2b-256 a643e5e3eaef6a5092830f787d874a02300bf5957fc6d9686936e46284b34d6d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.4-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 4efbceb44fd696429cfdc05cce6e8f2772b16ae5dcc20d4669e3bf8b4bc09a59
MD5 7a91c7bf1f7e1155e335c46cb545e847
BLAKE2b-256 6459f2e387cbd98a1baf4a58947ffdcbb82e5359a8b9371fca85af4e18954bdb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.4-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 b9df3eb3f8363d922d566aba04b3e2265542da1a37c44b3394c0df8031f14ecd
MD5 e4d99f87026836ba190f9db2583be5ec
BLAKE2b-256 23153e518b3ac7c893d8de2bb9d4a223bb67c9057532e145a4aea2d153c077bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.4-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 def608ba8ec1f5932696f78a85381a7c8c4951ab31fe9674b5bcda1e47b05e77
MD5 694be3be794cd11154ffe8297b57b9c6
BLAKE2b-256 77241625789beb3f9646956b0aaa575e54c69e1c6d28c796fce90a147afea160

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.4-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e4aee987170a555b64164effa3f42e95e6ec863f74d5518bbed2a1e4211850ca
MD5 5fd49a98bc254415ba1cf16100b7e77b
BLAKE2b-256 381b052b802d7404aaed45f0fc7e9ef6481643c28ed5b9385e83f8a2fdddb251

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.4-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 61b9e642cb790695c7ca125406dc4c4ffe0c814906253cf6afcb85ebca29c7fd
MD5 0b0a657c79f2df26103a6747043b291d
BLAKE2b-256 2dcc09e7efc9c41ffcbf603d5238c6b75d06a81feff7121d348577e4922629a7

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