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

Uploaded Source

Built Distributions

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

Uploaded Python 3 Windows ARM64

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

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

pyinstaller-5.9.0-py3-none-musllinux_1_1_x86_64.whl (650.9 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

pyinstaller-5.9.0-py3-none-musllinux_1_1_aarch64.whl (654.1 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

pyinstaller-5.9.0-py3-none-manylinux2014_s390x.whl (650.5 kB view details)

Uploaded Python 3

pyinstaller-5.9.0-py3-none-manylinux2014_i686.whl (654.2 kB view details)

Uploaded Python 3

pyinstaller-5.9.0-py3-none-macosx_10_13_universal2.whl (924.5 kB view details)

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

File details

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

File metadata

  • Download URL: pyinstaller-5.9.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.9.0.tar.gz
Algorithm Hash digest
SHA256 2bde16a8d664e8eba9aa7b84f729f7ab005c1793be4fe1986b3c9cad6c486622
MD5 39c747b17471324ba2860e5dbb038cf2
BLAKE2b-256 870b0b9cfa5ed2ffcb9f3ae4335c436e4e250a5ea4c4d7dac4a693ed7f2b14dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.9.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 6cf6c032c72ef78fd9aa5e47d8952e784db45b2c3f7862bd44a99df68c216f64
MD5 d8caf020e092041521df468959a2cd0a
BLAKE2b-256 cdcc731bf18a296c2b19d6195e06827a38c8d00a06750d557794b4e01f260fc4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.9.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 e7a4c292810285c2466f3bdcb1e03ba2170177ebe3d7054ff1af3bb348bf61a4
MD5 c8b475ed4b365d457267df6e633c8f59
BLAKE2b-256 c286b2b3108434fc173a5686abb4e2f19230a18226a24cb9576102002f35793b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-5.9.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.9.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 8476538aec8a0a3be4f74b93388bd6989b91cc437ff86d6f0d3a68961176dce6
MD5 aaec8c1b66bdf27125aa4f04d6bf9a16
BLAKE2b-256 c8dbe2ee582e3d337a3e3f698d35703671777270e95f4238610c21a3bc6ab1e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.9.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 d1ff94347183ae3755cfb8f02e64744eb7fe384469bd61e453c6ff59a81665d6
MD5 75f77977b1ab6a083681c647e9a30d8b
BLAKE2b-256 1b99043811ac182e326dcb7183bb52963b248100e48d9a5f38da3aa848567351

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.9.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 2ba42038b3bd83e1fba7c8eb9e7cde43bd5938e37ca542c89e8779355d213f52
MD5 528aac5f19334c1b0768b6419a527fa3
BLAKE2b-256 ee046c820d88b61061ed7ba8d7bd5c5d9f51fb8eb43c86d522da77da9ba9b840

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.9.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c7dd156c2438f197c168b990bbce03c97d3fb758dd9bbc3ca93626c2f4473a47
MD5 c14dcb6d517d6aec048ddac37c1494ef
BLAKE2b-256 86757bb7831344ae0acba0489eb26e4ed85faf31bd5725a09f8123bf03da5688

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.9.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 12ca6567be457826e14416637ea54485a185d0ce7a5a044df0d0daf588fff6d1
MD5 4d75c47ed8c4ec603dd65718f9201630
BLAKE2b-256 3d45efff8a239f6cb544e7959ad0b5ff11d70697dc620ad85e5a878f4afa06b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.9.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 4b21b0298db44f5f07fc04d8ff81ec31efa47b72798efaecc4e811c50a102111
MD5 54cc55673feeb656c2fb71452e9f45e5
BLAKE2b-256 cb4ef1d16ff532ed9d6ab10f130e90bc7e085872a8594a7931b3f099f5dae22b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.9.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 dcd348b174fd72c4df271790ac582969c9423cb099fe92db9ec131a8a9243d5a
MD5 fa42ceeeee4b5edf1b84941bb753cb7e
BLAKE2b-256 4a2addf9447a17692d5a62180b170531d66b41e1a644e46f1d310d732af0d5ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.9.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3b2c34c3c3ddf38f68d9f5afbed82abe0f89d53014c56892326fef10172ee652
MD5 3c580daa592ac2f651504fb99e45b779
BLAKE2b-256 0277b1047b4a837404eba02d5e2f1d0d91689b02e87398a9858d654cc6e39c56

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-5.9.0-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 93d7e8443a6b60745d42aa50f08730f6b419410832b4c616c4f1bb315f087661
MD5 0430144bda0cebc8ac9ba4f38e07f412
BLAKE2b-256 47c1c635bf5a8cc17528a6015701a95f14b2490b662091123429e7e963943bef

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