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

Uploaded Source

Built Distributions

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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3Windows x86

pyinstaller-5.10.0-py3-none-musllinux_1_1_x86_64.whl (652.0 kB view details)

Uploaded Python 3musllinux: musl 1.1+ x86-64

pyinstaller-5.10.0-py3-none-musllinux_1_1_aarch64.whl (655.3 kB view details)

Uploaded Python 3musllinux: musl 1.1+ ARM64

pyinstaller-5.10.0-py3-none-manylinux2014_x86_64.whl (651.5 kB view details)

Uploaded Python 3

pyinstaller-5.10.0-py3-none-manylinux2014_s390x.whl (651.5 kB view details)

Uploaded Python 3

pyinstaller-5.10.0-py3-none-manylinux2014_ppc64le.whl (659.0 kB view details)

Uploaded Python 3

pyinstaller-5.10.0-py3-none-manylinux2014_i686.whl (655.4 kB view details)

Uploaded Python 3

pyinstaller-5.10.0-py3-none-manylinux2014_aarch64.whl (653.6 kB view details)

Uploaded Python 3

pyinstaller-5.10.0-py3-none-macosx_10_13_universal2.whl (925.3 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for pyinstaller-5.10.0.tar.gz
Algorithm Hash digest
SHA256 4ae664b93b627b717c23b90e8deae64f23ffb2f62197abdb87def44512c7e759
MD5 22d510d0368bdfaad243e75d32b75f95
BLAKE2b-256 0f2280d551593c1429a7f56680eecffe9b1c7e2b47b0d3a82feaa35fa5efeb74

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-5.10.0-py3-none-win_arm64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for pyinstaller-5.10.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 c0261ebacefee92838342e246335f1ffab556745a5250de7f7b38f9e6d510e83
MD5 c397be1092b2d21c15b2867742caef1c
BLAKE2b-256 4255e0ea04143ca904cf6b32b1c49c65a4ce21558f4566cd13f9c972e4858e5e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyinstaller-5.10.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 53449d8acaa3e5504197168cef13a329828b139749aaa0d1fc383d0f0e67a0e7
MD5 e560bb14b8b8e996b40e2412aaae5d18
BLAKE2b-256 6e32c92f05077618001197f92055fa900eddb9ca451775492fcab3c782d58ef2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-5.10.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.10.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 497e0b88489d07bf1e7d99de587d26912cddbc77544c809cb28f48e9eb7331f8
MD5 ef873a51b923e87e7202cf0a8b9901cb
BLAKE2b-256 b3ecd9eaeca7f577425bac8d5ca3bf25fd4291eb7d7b803b6090650aecd15a67

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.10.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 fd117d460bcaefafc109c15accf1f0005a2951883d5be69a79eaa306a7923a9a
MD5 4a70cc50b1c97e92c15b525ac0553c83
BLAKE2b-256 e7f3e80d4efabc4219e3ffabfc0fb48b8f9d39c446a9bd3bea8a7a0126479858

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.10.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 9a93e484934262362f327214ef2632390f28b04d03715cc2da86657c7073916d
MD5 d3c928dafdb7be26d191b5408a23fa2e
BLAKE2b-256 bdcb10f220981df388e290e63de1afdf099c1282c1ef6ca357a9d05ba463a23f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.10.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b2ae7afd384c3ef0866a741eeeb7c0f650374fc3fe0a8d7b9c2f41e09ce3ba74
MD5 e0493972200438f2b59403d618e42dbc
BLAKE2b-256 2eb6593766a24a3d1c1fcf2ab9b83d476d82a5beb8370a7e442550099d9ba8c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.10.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 176a9d66d8ce619055daee98b2df93093a4282d0df4fe25609fcf3a8e4c704a3
MD5 0880267d0316ae1da9a04e2475164732
BLAKE2b-256 590f78f81a6bcff35389e63cdc5fc5e228d40139bc6647740e2377b5a241f607

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.10.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 96d013d118c575fe0051efbe80323921c79e41f94fc374e8cb674d083650f6b4
MD5 ebc23f7976c215ca745a8e385216adab
BLAKE2b-256 e6ed98bb6c7703cbfa17aad1ba7f0852c5375cf87380cfcc3c0f3bce04cd50ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.10.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 239bb7f99312feaa5e49585a760af9a4b21923bfd85f7084a3150d36f7f13601
MD5 3876857d9c7f17300e55c0bf4870e641
BLAKE2b-256 e23e9c135e1eaf1a1363f15b32d525737dd5f3d5dd017a3fc0a913a13bf2b361

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.10.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ee00f52db787e9a1a8ba447f555b51ea97ddca7cf71d02c5fdaf26411e8925ba
MD5 f1d27720c5574a2d0ba5a7e1585b1e04
BLAKE2b-256 b54fb0c1b05b8ccb263d3bfeba164ab5cc70468d26a9686abac9886d10b64b21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.10.0-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 4893817d743bbb633dec8bec1fc343f3474b078339d4962f76af8208194ae097
MD5 6a6ba85c0a3147fd8dc8f03ae51ef399
BLAKE2b-256 b57816ad288331462a2ed9d2a491970c8a8d5022a5fa04e37fb97719924a0404

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