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

Uploaded Source

Built Distributions

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

Uploaded Python 3 Windows ARM64

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

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

pyinstaller-6.3.0-py3-none-musllinux_1_1_x86_64.whl (663.6 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

pyinstaller-6.3.0-py3-none-musllinux_1_1_aarch64.whl (666.4 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

pyinstaller-6.3.0-py3-none-manylinux2014_s390x.whl (662.2 kB view details)

Uploaded Python 3

pyinstaller-6.3.0-py3-none-manylinux2014_i686.whl (666.5 kB view details)

Uploaded Python 3

pyinstaller-6.3.0-py3-none-macosx_10_13_universal2.whl (940.0 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for pyinstaller-6.3.0.tar.gz
Algorithm Hash digest
SHA256 914d4c96cc99472e37ac552fdd82fbbe09e67bb592d0717fcffaa99ea74273df
MD5 5561b751c6bbc5d0b8f773b964522531
BLAKE2b-256 5cb579e53c645c3f458cde165493ed71c1cac478fce67f204ad6ecca48b47440

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.3.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 1eadbd1fae84e2e6c678d8b4ed6a232ec5c8fe3a839aea5a3071c4c0282f98cc
MD5 67aa87bd5248279408948db2dc951a70
BLAKE2b-256 2475e7b5ebf8f33b7b603466f0d6c89f59b928f30d81160fbcec6ad59bac3dc6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.3.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 156b32ba943e0090bcc68e40ae1cb68fd92b7f1ab6fe0bdf8faf3d3cfc4e12dd
MD5 8c1a5690b7f56c030170190f78a39484
BLAKE2b-256 fc2b72fe6fa39f0353331f0e8c54e0915768ad48e0bff0433d10353ba81ffea5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.3.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.12.0

File hashes

Hashes for pyinstaller-6.3.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 0597fb04337695e5cc5250253e0655530bf14f264b7a5b7d219cc65f6889c4bd
MD5 2c1ffa38bae089dd0975f4735b6ca220
BLAKE2b-256 6e27ac169c1d07c1ebce5819e1dd3a6a4b7b5e3fe4c7f6db3d7f8ed97b9badb6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.3.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 886b3b995b674905a20ad5b720b47cc395897d7b391117831027a4c8c5d67a58
MD5 d5eebeba14f4e3e9d9f3dd3c8ae5b168
BLAKE2b-256 827ad2f5893680064bce75b13e9caf5fd5c93fdfdb73fd3ce0c0d822fef79060

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.3.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 41c937fe8f07ae02009b3b5a96ac3eb0800a4f8a97af142d4100060fe2135bb9
MD5 05cb754ab987f018e54b990180ad1531
BLAKE2b-256 9374158c40b3fe80de401015fa868870bd1c2a5b1444e05b1c962bf92526ce58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.3.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 abe91106a3bbccc3f3a27af4325676ecdb6f46cb842ac663625002a870fc503b
MD5 6337fb0dd5a3bfe73b0777c801c331e7
BLAKE2b-256 ca1fcdbe66b8b131b7dd3cd0e65c48e9fcf67f8335f07ca663f81e6fd7421b22

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.3.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 96c37a1ee5b2fd5bb25c098ef510661d6d17b6515d0b86d8fc93727dd2475ba3
MD5 1ea70004357fc0e8f433cb701c74fd2c
BLAKE2b-256 d5b42a02a4755ffef9aaeb6712a75c188a8a173beb412f0ed1935f90489e2ac5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.3.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 b721d793a33b6d9946c7dd95d3ea7589c0424b51cf1b9fe580f03c544f1336b2
MD5 6714b9d0e4ecd38c9b90d7478004393c
BLAKE2b-256 a8a973bfbb2b4db1ff5ccb7446f7bf8464ea41b8a25c43bd41389a23b08a5cde

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.3.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e436fcc0ea87c3f132baac916d508c24c84a8f6d8a06c3154fbc753f169b76c7
MD5 e8e00ac9a2fdc52590f552a3630eb050
BLAKE2b-256 35294ddd97e6c5bc1b1af45aee741f56d1d7d17a0920c872078d90b402acc001

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.3.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 de25beb176f73a944758553caacec46cc665bf3910ad8a174706d79cf6e95340
MD5 58924192e4278eb5c470066df3e4887c
BLAKE2b-256 93e8a9d72cb783529e17a5968d3b6c862e5ce78719671efd6dc6bb0dca1e32a4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.3.0-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 75a6f2a6f835a2e6e0899d10e60c10caf5defd25aced38b1dd48fbbabc89de07
MD5 22be40070c498c4f021e8a56f12b28a3
BLAKE2b-256 7f6c49ca237d78cac9d0b3c041e0fbc58444dea8db7e2a2a5c584ae006f21fe9

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