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.

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

Uploaded Source

Built Distributions

pyinstaller-5.8.0-py3-none-win_arm64.whl (1.2 MB view details)

Uploaded Python 3 Windows ARM64

pyinstaller-5.8.0-py3-none-win_amd64.whl (1.3 MB view details)

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

pyinstaller-5.8.0-py3-none-musllinux_1_1_x86_64.whl (651.6 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

pyinstaller-5.8.0-py3-none-musllinux_1_1_aarch64.whl (654.8 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

pyinstaller-5.8.0-py3-none-manylinux2014_s390x.whl (651.1 kB view details)

Uploaded Python 3

pyinstaller-5.8.0-py3-none-manylinux2014_i686.whl (654.9 kB view details)

Uploaded Python 3

pyinstaller-5.8.0-py3-none-macosx_10_13_universal2.whl (925.2 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for pyinstaller-5.8.0.tar.gz
Algorithm Hash digest
SHA256 314fb883caf3cbf06adbea2b77671bb73c3481568e994af0467ea7e47eb64755
MD5 c1a91b6280b3f4de256d2e0e67e7230b
BLAKE2b-256 6320cfb61921d7db3e8473440091ac99ae900357f26197502ab7ec9ff6473ca5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.8.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 bacf236b5c2f8f674723a39daca399646dceb470881f842f52e393b9a67ff2f8
MD5 0ea7ce0cdad3f154acaef5eef80b603a
BLAKE2b-256 ca9d956ff5f679f4e99a8817162fc323d65c4027d411c99d31872eea55289262

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.8.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 4f4d818588e2d8de4bf24ed018056c3de0c95898ad25719e12d68626161b4933
MD5 c82ac8b4eacbd926a928d4051c4ca516
BLAKE2b-256 dcd96d76544c4d554cdabc58e11a28b88a9767b1a57399c460342eff2ad0aeab

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-5.8.0-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.2 CPython/3.10.9

File hashes

Hashes for pyinstaller-5.8.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 3b74f50a57b1413047042e47033480b7324b091f23dff790a4494af32b377d94
MD5 f6383a77a9515cc1ab02fa05df83f67f
BLAKE2b-256 c31ed6bb9799a785419199665b34d5d3591a20778d42e9df1faba62923064d0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.8.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8d004699c5d71c704c14a5f81eec233faa4f87a3bf0ae68e222b87d63f5dd17e
MD5 231f97d2e2f39d9bf115ea30b07118c5
BLAKE2b-256 c50913a25d8f1afe6e85c89d3f4a5d1f4edfdf53b2f7e547d12932e57322d8c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.8.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 5c9632a20faecd6d79f0124afb31e6557414d19be271e572765b474f860f8d76
MD5 215171f67b9126d0e958817d6f657f5f
BLAKE2b-256 08e95deec9b1a3f0a0ee6936f5a05e31495f5b8b054d60e272799c6cdc25885f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.8.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f9361eff44c7108c2312f39d85ed768c4ada7e0aa729046bbcef3ef3c1577d18
MD5 704c7140fa1b3826a005098a1c3fb5ba
BLAKE2b-256 f43f82a27d1b1effafdf6d4cf324e1c41ea139a27a372ad0ab685baaa353ab03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.8.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 ded780f0d3642d7bfc21d97b98d4ec4b41d2fe70c3f5c5d243868612f536e011
MD5 88bc273c92c1dc16de364d253c2c3762
BLAKE2b-256 58d2c7cdb929fa64a19a549bcca0a60118f4ccb3de28e32fc59dfb08c9aa769f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.8.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 e68bcadf32edc1171ccb06117699a6a4f8e924b7c2c8812cfa00fd0186ade4ee
MD5 e30a150da75edcf7f12ddf6be3df0c52
BLAKE2b-256 11da33468658cb4d0a959d0bec1664b1f7f448aa8ccbc5026655f2cd809d43dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.8.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a62ee598b137202ef2e99d8dbaee6bc7379a6565c3ddf0331decb41b98eff1a2
MD5 eda0b3f3156ad20b72c0fb319a013ae2
BLAKE2b-256 dcb092a20d7e0ff068b295f9a369d7bbb0f1c5f87b72bb60587d5baa9d5ac93e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.8.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bf1f7b7e88b467d7aefcdb2bc9cbd2e856ca88c5ab232c0efe0848f146d3bd5f
MD5 91af5b1660a2af5c26d5c6b9f2f15711
BLAKE2b-256 e6618326349c6c5af8af8ed7f811284adf87c251d685b71eb268d17457a37166

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.8.0-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 502a2166165a8e8c3d99c19272e923d2548bac2132424d78910ef9dd8bb11705
MD5 4ba7545ebfc1470693b275eecd42bdae
BLAKE2b-256 6474bc3dd35e79f4ff6f1787196a019bd20c4c7b87a9499374fedb1f35c61134

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