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

Uploaded Source

Built Distributions

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

Uploaded Python 3 Windows ARM64

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

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

pyinstaller-6.12.0-py3-none-musllinux_1_1_x86_64.whl (715.9 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

pyinstaller-6.12.0-py3-none-musllinux_1_1_aarch64.whl (719.4 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

pyinstaller-6.12.0-py3-none-macosx_10_13_universal2.whl (998.0 kB view details)

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

File details

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

File metadata

  • Download URL: pyinstaller-6.12.0.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.12.0.tar.gz
Algorithm Hash digest
SHA256 1834797be48ce1b26015af68bdeb3c61a6c7500136f04e0fc65e468115dec777
MD5 d200836ba39f896398de531fa51576e6
BLAKE2b-256 10c0001e86a13f9f6104613f198721c72d377fa1fc2a09550cfe1ac9a1d12406

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.12.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 0c271896a3a168f4f91827145702543db9c5427f4c7372a6df8c75925a3ac18a
MD5 f925cd2b0f787e2f87dc9c7a7d6d7f78
BLAKE2b-256 47c2298ad6a3aa2cacb55cbc1f845068dc1e4a6c966082ffa0e19c69084cbc42

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.12.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 0e62d3906309248409f215b386f33afec845214e69cc0f296b93222b26a88f43
MD5 0eb34009b750b73eb38c77b727aa8c41
BLAKE2b-256 996ed7d76d4d15f6351f1f942256633b795eec3d6c691d985869df1bf319cd9d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyinstaller-6.12.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 138856a5a503bb69c066377e0a22671b0db063e9cc14d5cf5c798a53561200d3
MD5 5b5794d30d48c499fe22248d6bc64be9
BLAKE2b-256 4d5f857de8798836f9d16a620bd0a7c8899bba05b5fda7b3b4432762f148a86d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.12.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 aefe502d55c9cf6aeaed7feba80b5f8491ce43f8f2b5fe2d9aadca3ee5a05bc4
MD5 d5f7bdfb998bfdb396230beb77647933
BLAKE2b-256 2457069d35236806b281a3331ef00ff94e43f3b91e4b36350de8b40b4baf9fd3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.12.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 8e92e9873a616547bbabbb5a3a9843d5f2ab40c3d8b26810acdf0fe257bee4cf
MD5 f1b59fddfb46835ee9d6a755675c048e
BLAKE2b-256 11a65c3a233cf19aa6d4caacf62f7ee1c728486cc20b73f5817be17485d7b7ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.12.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a2abf5fde31a8b38b6df7939bcef8ac1d0c51e97e25317ce3555cd675259750f
MD5 e261a82bd282514e7d049ca742a5a90c
BLAKE2b-256 802b14404f2dc95d1ec94d08879c62a76d5f26a176fab99fb023c2c70d2ff500

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.12.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 a69818815c6e0711c727edc30680cb1f81c691b59de35db81a2d9e0ae26a9ef1
MD5 936da49c92e9f013f4585f0bd8f747ee
BLAKE2b-256 6fd9e7742caf4c4dc07d13e355ad2c14c7844c9bb2e66dea4f3386b4644bd106

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.12.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 83c7f3bde9871b4a6aa71c66a96e8ba5c21668ce711ed97f510b9382d10aac6c
MD5 9ff429457553dda8a880c099412cd121
BLAKE2b-256 641c5028ba2e09f5b57f6792e9d88e888725224f8f016a07666e48664f6a9fcf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.12.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 dac8a27988dbc33cdc34f2046803258bc3f6829de24de52745a5daa22bdba0f1
MD5 a1ffeb99933d029a34c443348b69d15d
BLAKE2b-256 e19a422d5eb04132e4a4735ca9099a53511324ff7d387b80231fe8dbd67bf322

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.12.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fea76fc9b55ffa730fcf90beb897cce4399938460b0b6f40507fbebfc752c753
MD5 929b7c87034b39783370093723dc3eb6
BLAKE2b-256 4abc0929ed6aca3c5ff3f20f8cfd4f2f7e90f18c9465440e0d151d56d8170851

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.12.0-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 68f1e4cecf88a6272063977fa2a2c69ad37cf568e5901769d7206d0314c74f47
MD5 ee24002540060394b18edec4fb516767
BLAKE2b-256 b273b897a3fda99a14130111abdb978d63da14cbc9932497b5e5064c5fe28187

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 Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page