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

  • 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 third-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.14. 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.15.

  • Windows (32-bit/64-bit/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.20.0.tar.gz (4.0 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyinstaller-6.20.0-py3-none-win_arm64.whl (1.3 MB view details)

Uploaded Python 3Windows ARM64

pyinstaller-6.20.0-py3-none-win_amd64.whl (1.4 MB view details)

Uploaded Python 3Windows x86-64

pyinstaller-6.20.0-py3-none-win32.whl (1.3 MB view details)

Uploaded Python 3Windows x86

pyinstaller-6.20.0-py3-none-musllinux_1_1_x86_64.whl (747.4 kB view details)

Uploaded Python 3musllinux: musl 1.1+ x86-64

pyinstaller-6.20.0-py3-none-musllinux_1_1_aarch64.whl (747.6 kB view details)

Uploaded Python 3musllinux: musl 1.1+ ARM64

pyinstaller-6.20.0-py3-none-manylinux2014_x86_64.whl (748.5 kB view details)

Uploaded Python 3

pyinstaller-6.20.0-py3-none-manylinux2014_s390x.whl (748.6 kB view details)

Uploaded Python 3

pyinstaller-6.20.0-py3-none-manylinux2014_ppc64le.whl (751.9 kB view details)

Uploaded Python 3

pyinstaller-6.20.0-py3-none-manylinux2014_i686.whl (754.2 kB view details)

Uploaded Python 3

pyinstaller-6.20.0-py3-none-manylinux2014_aarch64.whl (742.5 kB view details)

Uploaded Python 3

pyinstaller-6.20.0-py3-none-macosx_10_13_universal2.whl (1.0 MB view details)

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

File details

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

File metadata

  • Download URL: pyinstaller-6.20.0.tar.gz
  • Upload date:
  • Size: 4.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pyinstaller-6.20.0.tar.gz
Algorithm Hash digest
SHA256 95c5c7e03d5d61e9dfb8ef259c699cf492bb1041beb6dbe83696608cec07347a
MD5 7430e62e90180e5f1267bbd2d4055e4f
BLAKE2b-256 4660d03d52e6690d4e9caf333dcd14550cde634ce6c118b3bc8fa3112c3186fd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.20.0-py3-none-win_arm64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pyinstaller-6.20.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 bd53282c0a73e5c95573e1ddc8e5d564d4932bec91efbaed4dc5fdff9c2ae7f2
MD5 75bad37fe8b17feff3115f50d7c78e41
BLAKE2b-256 8aeab2f8e1642aecda78c0b75c7321f708e49e10bb3c00dd4f148c40761a1527

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyinstaller-6.20.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 d588844e890ee80c4365867f98146636e1849bbca8e4284bbf0c809aff0f161a
MD5 a49b00f8756869d6fcb92835e468a827
BLAKE2b-256 768c300f57578882cce259bfb5ae56fda3b69caa3fe9df40a176c719920ea6e2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.20.0-py3-none-win32.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pyinstaller-6.20.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 9a7637e8e44b4387b13667fdcaac86ab6b29c446c16d34d8401539b81838759c
MD5 f5755fef09517ccfbba2b117b1dc1592
BLAKE2b-256 d755ae264339996953c4cdf9d89d916a0a8fa26a83cf917a742fff8b9d5f3fe8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.20.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0ab39c690abad26ba148e8f664f0478acc82a733997f4f22e757774832802da9
MD5 35e3cde5fec9638020e0e01a62fbd243
BLAKE2b-256 e0561ee91c3a2bc10ca1f36da10a6fd55ff7efc4dec367171eb25992a827874f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.20.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 6357f1699f6af84f37e7367f031d4f68abdba65543b83990c9e8f5a4cebed0b7
MD5 904dd3f118241f9ba8be59da3a8c14a6
BLAKE2b-256 030fac77ffa996a56be3d5c8f85734a007f8347240691657f9704e7de2527fa3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.20.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 03696bb6350177c6bc23bcaf78e71a33c4a89b6754dd90d1be2f318e978c918b
MD5 0bebeba880cd8d911813bece70e730f6
BLAKE2b-256 fedb68ba1fccb71278b2124fb90b37b7c8c0bc4c1173fba45b94466df3d9cb7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.20.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 b0d3cc9dd8120d448459bd3880a12e2f9774c51443af49047801446377999a59
MD5 4fa7de108f7b4697d1ea92553d64eff3
BLAKE2b-256 3de7770002d6aaa54173881cb2c49bb195ba67b97bf39bac1cdf320f28401629

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.20.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 8df3b3f347659fa2562d8d193a98ad4600133b8b8d07c268df89e4154376750e
MD5 df8ec5dd60aec70932e21734657ad0da
BLAKE2b-256 e682bc0ee4c7b97db1958eb651e0da9fb1e672e5ae53ca8867fd97701de52906

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.20.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1031bcc307f3fbeffd4e162723e64d46dbf591c82dd0997413afb2a07328b941
MD5 30fc7396466a74b42906198e28fd9679
BLAKE2b-256 76080729a5bac14754150e5d83b39d87d842eb42b0bffcaa03dbad6252e23a39

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.20.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 72ae9c1fdea134afa791f58bdc9a1934d5c7609753c111e0026bfc272b32b712
MD5 179cec956dfbec1b2ad807ae9a67e12c
BLAKE2b-256 cebdafb631bcb3f9040efebd4f6d067f0828b51710818f69fb41a2d4b7787f52

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.20.0-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 bf3be4e1284ee78ddccba5e29f99443a12a7b4673168288ffc4c9d38c6f7b90e
MD5 c5f5c832398d758570958e603b00c4a1
BLAKE2b-256 d0e4e228d6d1bbb7fd62dc660a8fb202a583b023d3a3624ca95d1a9290ee4d6a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page