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

Uploaded Source

Built Distributions

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

Uploaded Python 3 Windows ARM64

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

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

pyinstaller-6.0.0-py3-none-musllinux_1_1_x86_64.whl (657.8 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

pyinstaller-6.0.0-py3-none-musllinux_1_1_aarch64.whl (660.5 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

pyinstaller-6.0.0-py3-none-manylinux2014_s390x.whl (656.3 kB view details)

Uploaded Python 3

pyinstaller-6.0.0-py3-none-manylinux2014_i686.whl (660.8 kB view details)

Uploaded Python 3

pyinstaller-6.0.0-py3-none-macosx_10_13_universal2.whl (935.1 kB view details)

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

File details

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

File metadata

  • Download URL: pyinstaller-6.0.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.0.0.tar.gz
Algorithm Hash digest
SHA256 d702cff041f30e7a53500b630e07b081e5328d4655023319253d73935e75ade2
MD5 90b189c8612bdd591aaa9df6ecf5d353
BLAKE2b-256 2f51ee0bc47505096f474390d62500befadc532a9cdd77460d6c46aa1b4e1c51

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.0.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 16a473065291dd7879bf596fa20e65bd9d1e8aafc2cef1bffa3e42e707e2e68e
MD5 1258d81e198e1bc1ae810735d8459f99
BLAKE2b-256 11a387c4d52dc4c7e31bec758dd306c733d524f931158557a646155a847a427e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.0.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 438a9e0d72a57d5bba4f112d256e39ea4033c76c65414c0693d8311faa14b090
MD5 1ac9ea7390b0179473b0899b312b4f8c
BLAKE2b-256 a585ddb59556f67ff274dd08201f0644a1715f245abc2d8b2faab7bd4e71b82d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.0.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.0.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 68769f5e6722474bb1038e35560444659db8b951388bfe0c669bb52a640cd0eb
MD5 f4b91d2b1c6d22d9cec19192e17bfe49
BLAKE2b-256 9676c76c23c0a487c3d0eae673177258eb1552bed0a2c1a9e29100b1e6e80370

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.0.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 fb6af82989dac7c58bd25ed9ba3323bc443f8c1f03804f69c9f5e363bf4a021c
MD5 8aa7c8bbab66a536298623da12deedb5
BLAKE2b-256 611a5df39c7458f8c9876c35550618b48e8cfeb8b99f79ff4015449868e6a884

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.0.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 cccdad6cfe7a5db7d7eb8df2e5678f8375268739d5933214e180da300aa54e37
MD5 6efe56e4d0b25c7c49b63a6e9810fcbf
BLAKE2b-256 aed1ad06c043fb28ed0ae69f726286e52239e3b5e810ebb0c6dada8529900d1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.0.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0ad7cc3776ca17d0bededcc352cba2b1c89eb4817bfabaf05972b9da8c424935
MD5 5613ef0fc997b186fbec39f6ee15bbed
BLAKE2b-256 e5e2f34b1872371c8c1247500bc319ddada158921b97c1eb915874c25a7b1c99

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.0.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 5314f6f08d2bcbc031778618ba97d9098d106119c2e616b3b081171fe42f5415
MD5 ec56076b42d05b84fdc5cbebb61b2706
BLAKE2b-256 866271ed90b28282f34b1f086d492e1ca40d1a5596262140a7a3786b5260d508

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.0.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 4a75bde5cda259bb31f2294960d75b9d5c148001b2b0bd20a91f9c2116675a6c
MD5 1429dae55f65ffa9db8933b4801b4646
BLAKE2b-256 f3952ee280c1f76b553bcec7882bf7d65a0bc9a83b4dd4b0768ea9e1c1ab767b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.0.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 52e5b3a2371d7231de17515c7c78d8d4a39d70c8c095e71d55b3b83434a193a8
MD5 40cbe40784e68fd123e4a69e50fc14d2
BLAKE2b-256 e7c4b858e1527faeaf761c6ae706b82a24dff8c23f9e8d76f22f8a41282d22f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.0.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 aa922d1d73881d0820a341d2c406a571cc94630bdcdc275427c844a12e6e376e
MD5 75800e4be5c830dfdd637c01bb18086b
BLAKE2b-256 29f0a6cd7d796e0c71dd8b834da08a6c4564e96d504f22d712d37d7d330496c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.0.0-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 d84b06fb9002109bfc542e76860b81459a8585af0bbdabcfc5dcf272ef230de7
MD5 22f40e2dca00a8bdeec719588a29e934
BLAKE2b-256 acd01ba8fdfbb328a7308b369f5a48643fc3bf4150c87ba7ad6b95585fa6434d

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