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.8-3.12.

  • 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.8-3.12. 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.13.

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

Uploaded Source

Built Distributions

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

Uploaded Python 3 Windows ARM64

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

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

pyinstaller-6.9.0-py3-none-musllinux_1_1_x86_64.whl (685.7 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

pyinstaller-6.9.0-py3-none-musllinux_1_1_aarch64.whl (688.4 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

pyinstaller-6.9.0-py3-none-manylinux2014_i686.whl (688.4 kB view details)

Uploaded Python 3

pyinstaller-6.9.0-py3-none-macosx_10_13_universal2.whl (959.8 kB view details)

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

File details

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

File metadata

  • Download URL: pyinstaller-6.9.0.tar.gz
  • Upload date:
  • Size: 4.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.0

File hashes

Hashes for pyinstaller-6.9.0.tar.gz
Algorithm Hash digest
SHA256 f4a75c552facc2e2a370f1e422b971b5e5cdb4058ff38cea0235aa21fc0b378f
MD5 89f95623a8224509aefb918c286e5872
BLAKE2b-256 66294bb2eb120b859b5691db5487777a9f1ed63a4b62d6df68284268074f7b73

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.9.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 f15c1ef11ed5ceb32447dfbdab687017d6adbef7fc32aa359d584369bfe56eda
MD5 ac02dcb25b6aae279b2cceb9833e513d
BLAKE2b-256 ca6f677eeaa64c979d3832ed4bc6ee27821d9f74e02cd31cc164af7b9a0e1714

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.9.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 43709c70b1da8441a730327a8ed362bfcfdc3d42c1bf89f3e2b0a163cc4e7d33
MD5 db9ed3f6b811e3ada548da35fb359871
BLAKE2b-256 0e9ccadf2950d3d23eec3a378ae6eaa564c2a781218657f18f42caeff3732b75

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.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/5.1.1 CPython/3.12.0

File hashes

Hashes for pyinstaller-6.9.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 2bf4de17a1c63c0b797b38e13bfb4d03b5ee7c0a68e28b915a7eaacf6b76087f
MD5 0d366ae2f334aadd174b29a090b3e726
BLAKE2b-256 de31c611f3921b62270e2cec9130f5c963eeda3d948316819248a682b89c416d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.9.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 b041be2fe78da47a269604d62c940d68c62f9a3913bdf64af4123f7689d47099
MD5 e08216f6d7570cb677eb91bfba41fbbd
BLAKE2b-256 098bfdcef6526d1a90654f98f6f4091b32322bfd125c886bafca98fba7dd608d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.9.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 4e3e50743c091a06e6d01c59bdd6d03967b453ee5384a9e790759be4129db4a4
MD5 867aee4ca80ebdaf7dd7befb8dcc79e1
BLAKE2b-256 bf899eb7121d7f1b6a8a8b3fc8a3b9d7901ee276065bea5282dda5dfe6bc293a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.9.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 da994aba14c5686db88796684de265a8665733b4df09b939f7ebdf097d18df72
MD5 fe300434bcdef7d404c9660d23bfe390
BLAKE2b-256 d86f70aed930ec50eda9f6f7c68aaadd6f9e652a22271a1dde24cf53b0bb0978

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.9.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 7bf0c13c5a8560c89540746ae742f4f4b82290e95a6b478374d9f34959fe25d6
MD5 9af7f2c7e753fe4c6a8b174c7f854ce3
BLAKE2b-256 ce8056b32fe83af2c4882093bba381601f1c5cbd12203da259bb93ede03dae42

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.9.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 a0f378f64ad0655d11ade9fde7877e7573fd3d5066231608ce7dfa9040faecdd
MD5 aa6b9e5d6e157448323a063f8371ab05
BLAKE2b-256 c1bb7a6ef52fd65dd26e2708409ab20f02c5979064383583f811c40c5995675a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.9.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f2fc568de3d6d2a176716a3fc9f20da06d351e8bea5ddd10ecb5659fce3a05b0
MD5 2b4aed72bdb974c3b235a77be900a068
BLAKE2b-256 e11ad238dffa9ad2505f567547fd131bdb8668c7103aa554c666cdf43ced0295

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.9.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f18a3d551834ef8fb7830d48d4cc1527004d0e6b51ded7181e78374ad6111846
MD5 85b15ce68c2ea74cfb8984d8433a07a6
BLAKE2b-256 e0fa8126cd3ce7fad90f4391b36a3f84370c0d13e6ffb295b74694cebc1c5f27

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.9.0-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 5ced2e83acf222b936ea94abc5a5cc96588705654b39138af8fb321d9cf2b954
MD5 0c6b2e6343eda74b69e82bbe1234ad31
BLAKE2b-256 ac4291dc2ad2da972032ff10a54d2f9701ecd3ee8b398990849f1a75d030d4f7

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