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

Uploaded Source

Built Distributions

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

Uploaded Python 3 Windows ARM64

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

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

pyinstaller-6.2.0-py3-none-musllinux_1_1_x86_64.whl (664.0 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

pyinstaller-6.2.0-py3-none-musllinux_1_1_aarch64.whl (666.6 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

pyinstaller-6.2.0-py3-none-manylinux2014_s390x.whl (662.4 kB view details)

Uploaded Python 3

pyinstaller-6.2.0-py3-none-manylinux2014_i686.whl (666.8 kB view details)

Uploaded Python 3

pyinstaller-6.2.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.2.0.tar.gz.

File metadata

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

File hashes

Hashes for pyinstaller-6.2.0.tar.gz
Algorithm Hash digest
SHA256 1ce77043929bf525be38289d78feecde0fcf15506215eda6500176a8715c5047
MD5 495751bbcdbfdd18112babeec9cb4868
BLAKE2b-256 ddc87bbbb6bb4130f96f7bc32064c13f115546fce07a3aacae75c3b4142256bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.2.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 d0c87b605bf13c3a04dfaa1d2fa7cd36765b8137000eeadccba865e1d6a19bf0
MD5 f37d77f36b8d895372c291703f2772b9
BLAKE2b-256 515de17511b28033d571f0e23c8d6d95c9c005c9f59bedfc8fe7e928ae9d0686

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.2.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 3b586196277c4c54b69880650984c39c28bb6258c2b4b64200032e6ac69d53a0
MD5 efc9655cc4bb0396f58ae7feea341ac0
BLAKE2b-256 a844ddbc0b6c75599793ec5853adbd418e5401ceb0933d4a0e523b93e4b79a0a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.2.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.10.9

File hashes

Hashes for pyinstaller-6.2.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 e5561e9a9b946d835c8dbc11ae4c16cc21e62bc77d10cc043406dc2992dfb4c6
MD5 21072f7a7a4e6f5200333fb5fc7798b1
BLAKE2b-256 76bdb9f984677f66d09d38f81fd936dd8840c0aad08afa2d5d65714679a609eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.2.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8ec9d6c98972bb922cedb16a6638257aa66e5deadd79e2953f3464696237c413
MD5 c614732244f44ff9f6455405c79879c6
BLAKE2b-256 597516b8272343a3b4fd6cdaefe8cf7d3b56b0c573741ac13313b4df598ccc18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.2.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 e87fd60292b53bb9965cb5a84122875469a2bd475fd0d0db0052a3f1be351f75
MD5 bea7007e5b36ed3b39cfda70c9e0f799
BLAKE2b-256 267a7b2319f083dfe89f8aed9f7f55186c5a7964fc354c93249f30102ed8ffeb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.2.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 104430686149b2f1c135b2c17aa2967c85d54ef77dc92feb4e179ec846c0c467
MD5 b77ae601e3a786ddb23fa75651b36044
BLAKE2b-256 3843b115ed1c7b620a19f7c1e13cb903d8609a55ecbb2df62b77e59fc42522b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.2.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 fcfabc0ff1d38a4262c051dea3fdc1f7f106405c1f1b491b4c79cd28df19cab6
MD5 fe54bd3ff7eae78125ad6f26d66c5001
BLAKE2b-256 3b23b594a42bc41584fcdf0d3173abe53f5f40eb7d0a9a5b98f519bf4c84d29c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.2.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 ebac06d99b80d2035594c3cc2fb5f2612d86289edd0510dbcbeb20a873f51d5a
MD5 585359d678e1403916533dcdcce130fb
BLAKE2b-256 710a7dc6f45149355a057afce6afdae2df2dd20fa5e48468266dfbb8fad3fc8e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.2.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ba602a38d7403de89c38b8956b221ce6de0280730d269bab522492fcad82ee33
MD5 6881a5e1c4684ac05f1cda86c3369195
BLAKE2b-256 9128ddf9d5a3f98646ee14a9c96d94b8329f95c7700611b0bdf5f570d1c6066f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.2.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 29d164394f1e949072f78a64c1e040f1c47b7f4aff08514c7666a031c8b44996
MD5 c43fc8b906379e260eeb58b49a4b8ca4
BLAKE2b-256 c9c9acb56ce6d8609c5191c4c59573b73be8d12528ca7a0ea3f64436635e01fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.2.0-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 a1adbd3cf25dc90926d783eae0f444d65cdfecc7bcdf6da522c3ae3ff47b4c25
MD5 a4f71a75deeb2e6328ec0681165c694f
BLAKE2b-256 6b3dac556c1208c701c4f6ccde77db0b2eeb84bf052d63260c2305fb5ace707c

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