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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3Windows x86

pyinstaller-6.18.0-py3-none-musllinux_1_1_x86_64.whl (739.8 kB view details)

Uploaded Python 3musllinux: musl 1.1+ x86-64

pyinstaller-6.18.0-py3-none-musllinux_1_1_aarch64.whl (740.1 kB view details)

Uploaded Python 3musllinux: musl 1.1+ ARM64

pyinstaller-6.18.0-py3-none-manylinux2014_x86_64.whl (740.9 kB view details)

Uploaded Python 3

pyinstaller-6.18.0-py3-none-manylinux2014_s390x.whl (741.1 kB view details)

Uploaded Python 3

pyinstaller-6.18.0-py3-none-manylinux2014_ppc64le.whl (744.3 kB view details)

Uploaded Python 3

pyinstaller-6.18.0-py3-none-manylinux2014_i686.whl (746.6 kB view details)

Uploaded Python 3

pyinstaller-6.18.0-py3-none-manylinux2014_aarch64.whl (735.0 kB view details)

Uploaded Python 3

pyinstaller-6.18.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.18.0.tar.gz.

File metadata

  • Download URL: pyinstaller-6.18.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.18.0.tar.gz
Algorithm Hash digest
SHA256 cdc507542783511cad4856fce582fdc37e9f29665ca596889c663c83ec8c6ec9
MD5 928d68219eec6fc8394fea7cd6a43624
BLAKE2b-256 9fb80fe3359920b0a4e7008e0e93ff383003763e3eee3eb31a07c52868722960

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.18.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.18.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 dba4b70e3c9ba09aab51152c72a08e58a751851548f77ad35944d32a300c8381
MD5 a64a6a16cf77002bb30031aa471b3f30
BLAKE2b-256 1b8d1a88e6e94107de3ea1c842fd59c3aa132d344ad8e52ea458ffa9a748726e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.18.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.18.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 976fabd90ecfbda47571c87055ad73413ec615ff7dea35e12a4304174de78de9
MD5 283e8697a19c5961bcb4a410e400477a
BLAKE2b-256 fbd548eef2002b6d3937ceac2717fe17e9ca3a43a4c9826bafee367dfc75ba85

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.18.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.18.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 496205e4fa92ec944f9696eb597962a83aef4d4c3479abfab83d730e1edf016b
MD5 5602a6cb33b81ca2ec464ae0cc9e951f
BLAKE2b-256 9a09e7a870e7205cdbd2f8785010a5d3fe48a9df2591156ee34a8b29b774fa14

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.18.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8fbe59da34269e637f97fd3c43024f764586fc319141d245ff1a2e9af1036aa3
MD5 e1af398d01115aab136e85d133311505
BLAKE2b-256 830fa59a95cd1df59ddbc9e74d5a663387551333bcf19a5dd3086f5c81a2e83c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.18.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 3638fc81eb948e5e5eab1d4ad8f216e3fec6d4a350648304f0adb227b746ee5e
MD5 f41f867beefd0f2f421115ad8f98b5d2
BLAKE2b-256 c247309305e36d116f1434b42d91c420ff951fa79b2c398bbd59930c830450be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.18.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4328c9837f1aef4fe1a127d4ff1b09a12ce53c827ce87c94117628b0e1fd098b
MD5 bb134c6ef64928cf93dee38a68060ac0
BLAKE2b-256 1c083a1419183e4713ef77d912ecbdd6ef858689ed9deb34d547133f724ca745

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.18.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 31b5d109f8405be0b7cddcede43e7b074792bc9a5bbd54ec000a3e779183c2af
MD5 6584410ebbaa2f151da43175a6215329
BLAKE2b-256 36f250887badf282fee776e83d1e4feab74c026f50a1ea16e109ed939e32aa28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.18.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 779817a0cf69604cddcdb5be1fd4959dc2ce048d6355c73e5da97884df2f3387
MD5 7ece1e1a440a704cb8e3a798328bdffd
BLAKE2b-256 5439fbc56519000cdbf450f472692a7b9b55d42077ce8529f1be631db7b75a36

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.18.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f998675b7ccb2dabbb1dc2d6f18af61d55428ad6d38e6c4d700417411b697d37
MD5 149e37916d7c4f22e8e40f3c59e6f02b
BLAKE2b-256 2c046756442078ccfcd552ccce636be1574035e62f827ffa1f5d8a0382682546

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.18.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 07785459b3bf8a48889eac0b4d0667ade84aef8930ce030bc7cbb32f41283b33
MD5 f9acd1a08ec4b67bf7fd6ef7d74316a2
BLAKE2b-256 4c9ca3634c0ec8e1ed31b373b548848b5c0b39b56edc191cf737e697d484ec23

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.18.0-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 cb7aa5a71bfa7c0af17a4a4e21855663c89e4bd7c40f1d337c8370636d8847c3
MD5 bfa836bd38ec366b7e0a607e05cec505
BLAKE2b-256 73e651b0146a1a3eec619e58f5d69fb4e3d0f65a31cbddbeef557c9bb83eeed9

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