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.19.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.19.0-py3-none-win_arm64.whl (1.3 MB view details)

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3Windows x86

pyinstaller-6.19.0-py3-none-musllinux_1_1_x86_64.whl (740.4 kB view details)

Uploaded Python 3musllinux: musl 1.1+ x86-64

pyinstaller-6.19.0-py3-none-musllinux_1_1_aarch64.whl (740.6 kB view details)

Uploaded Python 3musllinux: musl 1.1+ ARM64

pyinstaller-6.19.0-py3-none-manylinux2014_x86_64.whl (741.4 kB view details)

Uploaded Python 3

pyinstaller-6.19.0-py3-none-manylinux2014_s390x.whl (741.6 kB view details)

Uploaded Python 3

pyinstaller-6.19.0-py3-none-manylinux2014_ppc64le.whl (744.8 kB view details)

Uploaded Python 3

pyinstaller-6.19.0-py3-none-manylinux2014_i686.whl (747.1 kB view details)

Uploaded Python 3

pyinstaller-6.19.0-py3-none-manylinux2014_aarch64.whl (735.5 kB view details)

Uploaded Python 3

pyinstaller-6.19.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.19.0.tar.gz.

File metadata

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

File hashes

Hashes for pyinstaller-6.19.0.tar.gz
Algorithm Hash digest
SHA256 ec73aeb8bd9b7f2f1240d328a4542e90b3c6e6fbc106014778431c616592a865
MD5 f20da2d73947d15d443f10a6e2818cda
BLAKE2b-256 c863fd62472b6371d89dc138d40c36d87a50dc2de18a035803bbdc376b4ffac4

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyinstaller-6.19.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 c2d5a539b0bfe6159d5522c8c70e1c0e487f22c2badae0f97d45246223b798ea
MD5 3e601a0df0c27ac779ab05bdbf39af83
BLAKE2b-256 8165458cd523308a101a22fd2742893405030cc24994cc74b1b767cecf137160

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyinstaller-6.19.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 b5bb6536c6560330d364d91522250f254b107cf69129d9cbcd0e6727c570be33
MD5 fc1afff8f8661fb271dc29c87e267c5e
BLAKE2b-256 9cd36d5e62b8270e2b53a6065e281b3a7785079b00e9019c8019952828dd1669

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyinstaller-6.19.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 3c5c251054fe4cfaa04c34a363dcfbf811545438cb7198304cd444756bc2edd2
MD5 121d19aba099a60868424c9858f87ce5
BLAKE2b-256 5203b2c2ee41fb8e10fd2a45d21f5ec2ef25852cfb978dbf762972eed59e3d63

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.19.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 481a909c8e60c8692fc60fcb1344d984b44b943f8bc9682f2fcdae305ad297e6
MD5 d356f2233b9513a739ed0524d9302fd1
BLAKE2b-256 01d4e812ad36178093a0e9fd4b8127577748dd85b0cb71de912229dca21fd741

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.19.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 e649ba6bd1b0b89b210ad92adb5fbdc8a42dd2c5ca4f72ef3a0bfec83a424b83
MD5 69426b57b42cced88bb43a9b0a9e256f
BLAKE2b-256 6f4d63b0600f2694e9141b83129fbc1c488ec84d5a0770b1448ec154dcd0fee9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.19.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a0fc5f6b3c55aa54353f0c74ffa59b1115433c1850c6f655d62b461a2ed6cbbe
MD5 5e2fd04a1566040df3b6b74197f4258a
BLAKE2b-256 5360b8db5f1a4b0fb228175f2ea0aa33f949adcc097fbe981cc524f9faf85777

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.19.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 da6d5c6391ccefe73554b9fa29b86001c8e378e0f20c2a4004f836ba537eff63
MD5 f2526e6f14fc08b27b414bb3cec2ba8d
BLAKE2b-256 6de36872e020ee758afe0b821663858492c10745608b07150e5e2c824a5b3e1c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.19.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 4ab2bb52e58448e14ddf9450601bdedd66800465043501c1d8f1cab87b60b122
MD5 e7f933c97d5aaeae3d8b902881a78cc5
BLAKE2b-256 da0afc77e9f861be8cf300ac37155f59cc92aff99b29f2ddd78546f563a5b5a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.19.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1ec54ef967996ca61dacba676227e2b23219878ccce5ee9d6f3aada7b8ed8abf
MD5 9538ef75fe57614cd872374c1a4610ef
BLAKE2b-256 88c9ee3a4101c31f26344e66896c73c1fd6ed8282bf871473365b7f8674af406

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.19.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8bd68abd812d8a6ba33b9f1810e91fee0f325969733721b78151f0065319ca11
MD5 2908d25efd5a33c89d2c2ddbd83e37b3
BLAKE2b-256 cd7edfd724b0b533f5aaec0ee5df406fe2319987ed6964480a706f85478b12ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.19.0-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 4190e76b74f0c4b5c5f11ac360928cd2e36ec8e3194d437bf6b8648c7bc0c134
MD5 d1323955d57123bb500923986ae8e191
BLAKE2b-256 e3eb23374721fecfa72677e79800921cb6aceefa6ba48574dc404f3f6c6c3be7

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