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

Uploaded Source

Built Distributions

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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3Windows x86

pyinstaller-6.1.0-py3-none-musllinux_1_1_x86_64.whl (658.8 kB view details)

Uploaded Python 3musllinux: musl 1.1+ x86-64

pyinstaller-6.1.0-py3-none-musllinux_1_1_aarch64.whl (661.5 kB view details)

Uploaded Python 3musllinux: musl 1.1+ ARM64

pyinstaller-6.1.0-py3-none-manylinux2014_x86_64.whl (658.0 kB view details)

Uploaded Python 3

pyinstaller-6.1.0-py3-none-manylinux2014_s390x.whl (657.2 kB view details)

Uploaded Python 3

pyinstaller-6.1.0-py3-none-manylinux2014_ppc64le.whl (666.0 kB view details)

Uploaded Python 3

pyinstaller-6.1.0-py3-none-manylinux2014_i686.whl (661.6 kB view details)

Uploaded Python 3

pyinstaller-6.1.0-py3-none-manylinux2014_aarch64.whl (659.4 kB view details)

Uploaded Python 3

pyinstaller-6.1.0-py3-none-macosx_10_13_universal2.whl (934.8 kB view details)

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

File details

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

File metadata

  • Download URL: pyinstaller-6.1.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.1.0.tar.gz
Algorithm Hash digest
SHA256 8f3d49c60f3344bf3d4a6d4258bda665dad185ab2b097341d3af2a6387c838ef
MD5 0dd15c8228c960f95f3f842ed28e2d0c
BLAKE2b-256 89856c14b541f8e9b61eef5eafba3630d68ea0598f6a4cf531c23189765e9bb5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.1.0-py3-none-win_arm64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for pyinstaller-6.1.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 dd438afd2abb643f5399c0cb254a11c217c06782cb274a2911dd785f9f67fa9e
MD5 cc2525a4ac29f41e67b707ac24973ecd
BLAKE2b-256 70a961793fcebf396a94dc1c550e2fecc7fb437814aa01beb8e43d15cd6c9e43

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.1.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for pyinstaller-6.1.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 f9f5bcaef6122d93c54ee7a9ecb07eab5b81a7ebfb5cb99af2b2a6ff49eff62f
MD5 be7bba85b2948f7ab03130ac888ef36e
BLAKE2b-256 f3b9932c2113ac6cc814ea6433c7882411a97e3e73c5ae45d3f9de0b785999c7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.1.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.1.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 9e8b5bbc1bdf554ade1360e62e4959091430c3cc15ebfff3c28c8894fd1f312a
MD5 7b632e234c5ecf001102bf2a39862dad
BLAKE2b-256 2705f31e8aa9af646b22e33a502500c6844f25822f919fd4cca1c03ceaf45348

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.1.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 331f050e8f9e923bb6b50454acfc0547fd52092585c61eb5f2fc93de60703f13
MD5 714c8a5b0739657115e9e05f48046c2a
BLAKE2b-256 69c731cc64b2e371a675eb71e4f4371feb805ec92c00f30e8c8fcecffa6a720f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.1.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 041ab9311d08162356829bf47293a613c44dc9ace28846fb63098889c7383c5d
MD5 0a8afa8d5c9b22c2174b4970558f4dff
BLAKE2b-256 01d613658a9e6a6f2853e3dead5251674e27bc4af5ac50cdd71ef245344fedf1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.1.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4368e4eb9999ce32e3280330b3c26f175e0fa7fa13efb4d2dc4ade488ff6d7c2
MD5 f09ad679b2c1febd5bdd2d3fe509b452
BLAKE2b-256 d5cff44320e2c1aa9b76cb81aae80b3d7ac80aefe1bfa973bb05e0ab5fcea0a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.1.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 3c04963637481a3edf1eec64ab4c3fce098908f02fc472c11e73be7eedc08b95
MD5 b3fa5a96296af96e4797c5f038ca3a63
BLAKE2b-256 b62c8713bf9f8beea815350ba2e6399731f5f7042cc91c8301a77975cfd37ffe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.1.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 bebf6f442bbe6343acaec873803510ee1930d026846a018f727da4e0690081f8
MD5 60da0204bf24bc0c85579c5c460d956e
BLAKE2b-256 167ad2f29cab5a3a5bae3762dd177efec1e6f48d7d8ae82e6d16a7da2b1673cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.1.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6e71d9f6f5a1e0f7523e8ebee1b76bb29538f64d863e3711c2b21033f499e2b9
MD5 98610ef6b9749e7b3d3dc15e1e92e70f
BLAKE2b-256 3334b6beb6716deb7203bdd2a96e4f29164e31a7733f378b2a0e4caaf9073ee1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.1.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f63d2353537bac7bfeeaedbe5ac99f3be35daa290dd1ad1be90768acbf77e3d5
MD5 f53538c1292969dae3477565ee8bf65f
BLAKE2b-256 864d6f663620478a16456d157d89ad71ee1847f5c4c3ee38e0e2444e96980376

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.1.0-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 da78942d31c1911ea4abcd3ca3bd0c062af7f163a5e227fd18a359b61deda4ca
MD5 56fe755f068befa50f0f43380d5649d5
BLAKE2b-256 b3641f3b1e9d38a535f082cbcd0fa991a067393699877deca8a0c8a0786c8920

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page