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

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

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

Uploaded Source

Built Distributions

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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3Windows x86

pyinstaller-6.14.1-py3-none-musllinux_1_1_x86_64.whl (723.8 kB view details)

Uploaded Python 3musllinux: musl 1.1+ x86-64

pyinstaller-6.14.1-py3-none-musllinux_1_1_aarch64.whl (724.1 kB view details)

Uploaded Python 3musllinux: musl 1.1+ ARM64

pyinstaller-6.14.1-py3-none-manylinux2014_x86_64.whl (725.0 kB view details)

Uploaded Python 3

pyinstaller-6.14.1-py3-none-manylinux2014_s390x.whl (724.8 kB view details)

Uploaded Python 3

pyinstaller-6.14.1-py3-none-manylinux2014_ppc64le.whl (727.9 kB view details)

Uploaded Python 3

pyinstaller-6.14.1-py3-none-manylinux2014_i686.whl (729.8 kB view details)

Uploaded Python 3

pyinstaller-6.14.1-py3-none-manylinux2014_aarch64.whl (719.6 kB view details)

Uploaded Python 3

pyinstaller-6.14.1-py3-none-macosx_10_13_universal2.whl (999.9 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for pyinstaller-6.14.1.tar.gz
Algorithm Hash digest
SHA256 35d5c06a668e21f0122178dbf20e40fd21012dc8f6170042af6050c4e7b3edca
MD5 9ac719a98d20d90c8f124acb07f07c97
BLAKE2b-256 9f4ad66d3a9c34349d73eb099401060e2591da8ccc5ed427e54fff3961302513

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.14.1-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 d9d99695827f892cb19644106da30681363e8ff27b8326ac8416d62890ab9c74
MD5 3c96e8cc3c89b3b5d09d12d132e2836b
BLAKE2b-256 89578a8979737980e50aa5031b77318ce783759bf25be2956317f2e1d7a65a09

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyinstaller-6.14.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 0794290b4b56ef9d35858334deb29f36ec1e1f193b0f825212a0aa5a1bec5a2f
MD5 4496c02a84189c4652a1fbe791e2d41e
BLAKE2b-256 7cddbb8d5bcb0592f7f5d454ad308051d00ed34f8b08d5003400b825cfe35513

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyinstaller-6.14.1-py3-none-win32.whl
Algorithm Hash digest
SHA256 547f7a93592e408cbfd093ce9fd9631215387dab0dbf3130351d3b0b1186a534
MD5 afe8319440aca5ff58b26335ac1e23ae
BLAKE2b-256 d5436c68dc9e53b09ff948d6e46477932b387832bbb920c48061d734ef089368

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.14.1-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 d5fd73757c8ea9adb2f9c1f81656335ba9890029ede3031835d768fde36e89f0
MD5 d79cac386595fa90d17526bd22f5954a
BLAKE2b-256 d28b8570ab94ec07e0b2b1203f45840353ee76aa067a2540c97da43d43477b26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.14.1-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 5b05cbb2ffc033b4681268159b82bac94b875475c339603c7e605f00a73c8746
MD5 7707ce89a79b79bbc497d6b47866a1ad
BLAKE2b-256 c3661260f384e47bf939f6238f791d4cda7edb94771d2fa0a451e0edb21ac9c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.14.1-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c48dd257f77f61ebea2d1fdbaf11243730f2271873c88d3b5ecb7869525d3bcb
MD5 456ad630827b5de2ab255d705b9d2a08
BLAKE2b-256 c592e32ec0a1754852a8ed5a60f6746c6483e3da68aee97d314f3a3a99e0ed9e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.14.1-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 a4d53b3ecb5786b097b79bda88c4089186fc1498ef7eaa6cee57599ae459241e
MD5 c42891ce04b1bbe1f434fdea2e450f49
BLAKE2b-256 c60f5aa891c61d303ad4a794b7e2f864aacf64fe0f6f5559e2aec0f742595fad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.14.1-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 e2cfdbc6dd41d19872054fc233da18856ec422a7fdea899b6985ae04f980376a
MD5 1c86c43995eaf794c316194db5e625cd
BLAKE2b-256 e588446814e335d937406e6e1ae4a77ed922b8eea8b90f3aaf69427a16b58ed2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.14.1-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 7b8813fb2d5a82ef4ceffc342ed9a11a6fc1ef21e68e833dbd8fedb8a188d3f5
MD5 b3adafc24c134fdf150cb353bfcad52f
BLAKE2b-256 35f086391a4c0f558aef43a7dac8f678d46f4e5b84bd133308e3ea81f7384ab9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.14.1-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f040d1e3d42af3730104078d10d4a8ca3350bd1c78de48f12e1b26f761e0cbc3
MD5 383ee32b364374428971287d48286a81
BLAKE2b-256 afa6a2814978f47ae038b1ce112717adbdcfd8dfb9504e5c52437902331cde1a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.14.1-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 da559cfe4f7a20a7ebdafdf12ea2a03ea94d3caa49736ef53ee2c155d78422c9
MD5 afebebb444522e394a3012dd524bb4ff
BLAKE2b-256 43f6fa56e547fe849db4b8da0acaad6101a6382c18370c7e0f378a1cf0ea89f0

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