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.5.0.tar.gz (4.2 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.5.0-py3-none-win_arm64.whl (1.2 MB view details)

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3Windows x86

pyinstaller-6.5.0-py3-none-musllinux_1_1_x86_64.whl (680.3 kB view details)

Uploaded Python 3musllinux: musl 1.1+ x86-64

pyinstaller-6.5.0-py3-none-musllinux_1_1_aarch64.whl (683.0 kB view details)

Uploaded Python 3musllinux: musl 1.1+ ARM64

pyinstaller-6.5.0-py3-none-manylinux2014_x86_64.whl (679.6 kB view details)

Uploaded Python 3

pyinstaller-6.5.0-py3-none-manylinux2014_s390x.whl (678.9 kB view details)

Uploaded Python 3

pyinstaller-6.5.0-py3-none-manylinux2014_ppc64le.whl (687.6 kB view details)

Uploaded Python 3

pyinstaller-6.5.0-py3-none-manylinux2014_i686.whl (683.3 kB view details)

Uploaded Python 3

pyinstaller-6.5.0-py3-none-manylinux2014_aarch64.whl (681.0 kB view details)

Uploaded Python 3

pyinstaller-6.5.0-py3-none-macosx_10_13_universal2.whl (956.7 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for pyinstaller-6.5.0.tar.gz
Algorithm Hash digest
SHA256 b1e55113c5a40cb7041c908a57f212f3ebd3e444dbb245ca2f91d86a76dabec5
MD5 3d163db06221ae11b9333f82400df186
BLAKE2b-256 6b28fd5fae03e5bc795ff1901bd8d82a7f6d1f7f2a40904cbbe574a31d31c9d7

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyinstaller-6.5.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 1b3b7d6d3b18d76a833fd5a4d7f4544c5e2c2a4db4a728ea191e62f69d5cc33c
MD5 9212f912b8696af544d1d59868c1b723
BLAKE2b-256 88bf9a3f070a67a4b0528b843a443ef658d37592222adf596caeabfb504d0fd1

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyinstaller-6.5.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 e1266498893ce1d6cc7337e8d2acbf7905a10ed2b7c8377270117d6b7b922fc4
MD5 21abf9f43e9d6316655806c7c077d58a
BLAKE2b-256 8d28d3b728e059dbaf2705563c593155f862fcd29eb6e5126690ef76572b76f3

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyinstaller-6.5.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 61865eee5e0d8f8252722f6d001baec497b7cee79ebe62c33a6ba86ba0c7010d
MD5 3c9be631811b08aa60bb47a78d25c80e
BLAKE2b-256 8244e0712778edde62d437cacf2fee4c34faca3c981b1f2c7a3469010f3f0284

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.5.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 9d828213aea5401bb33a36ca396f8dc76a59a25bce1d76a13c9ad94ba29fbe42
MD5 8917bf721aa4b2472ef64183246e835e
BLAKE2b-256 cba75d6c8d4f00cdef804656c0fc0f59885f59dfac712cc12e29961c3495ea39

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.5.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 6cfee8a74ea2d3a1dc8e99e732a87b314739dc14363778143caac31f8aee9039
MD5 55acad7e49fe37d46fb0a7585f7b20d8
BLAKE2b-256 2455decc77b42ddaac5f608e822c6da2ebbf608304c92680a0e89220466f382e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.5.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7c76bfcb624803c311fa8fb137e4780d0ec86d11b7d90a8f43f185e2554afdcc
MD5 3fee4a76aed1c90441923507c438b828
BLAKE2b-256 96095dbd9e24b9b1937532e9a6c6a5a2403f6af85272a88cb5f04224e0394bb4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.5.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 0dae0edbe6d667b6b0ccd8c97a148f86474a82da7ce582296f9025f4c7242ec6
MD5 103b58bf2ce1c6787b194e68648d108c
BLAKE2b-256 c67d0808921a753eec6d37494377edbdc6c09cc86f1c8da5133ecc3a64add986

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.5.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 a54968df2228f0128607b1dced41bbff94149d459987fb5cd1a41893e9bb85df
MD5 489b818474d8744d1b0b730d476890ef
BLAKE2b-256 3714846f2cbc10ad50723aa9c37a790d57f771d9b6a470dd44a84b77f636308d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.5.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6ffd76a0194dac4df5e66dcfccc7b597f3eaa40ef9a3f63548f260aa2c187512
MD5 f640c443ac0755f325644d1d039c87a1
BLAKE2b-256 282ef14ee6138a7604b930446acb7671daa513d54c033f088b2945af8701339a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.5.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5f432f3fdef053989e0a44134e483131c533dab7637e6afd80c3f7c26e6dbcc9
MD5 ec0c90f074d13d09cc20d746da9a3127
BLAKE2b-256 f49789b3f0418d9b2b43dea2512d3b777c4a3c67e603c2b9369a0b651e83c7b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.5.0-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 81ec15c0deb8c7a0f95bea85b49eecc2df1bdeaf5fe487a41d97de6b0ad29dff
MD5 3ae3dcab7e50558e7aca4d78e23c6c70
BLAKE2b-256 9beb4f8b9a1fb66c2fee6a2c4e7ee131f17259803c8fcc9fe48cb1b62efe07f0

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