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.8.0.tar.gz (4.2 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.8.0-py3-none-win_arm64.whl (1.2 MB view details)

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3Windows x86

pyinstaller-6.8.0-py3-none-musllinux_1_1_x86_64.whl (683.8 kB view details)

Uploaded Python 3musllinux: musl 1.1+ x86-64

pyinstaller-6.8.0-py3-none-musllinux_1_1_aarch64.whl (686.6 kB view details)

Uploaded Python 3musllinux: musl 1.1+ ARM64

pyinstaller-6.8.0-py3-none-manylinux2014_x86_64.whl (683.2 kB view details)

Uploaded Python 3

pyinstaller-6.8.0-py3-none-manylinux2014_s390x.whl (682.0 kB view details)

Uploaded Python 3

pyinstaller-6.8.0-py3-none-manylinux2014_ppc64le.whl (691.0 kB view details)

Uploaded Python 3

pyinstaller-6.8.0-py3-none-manylinux2014_i686.whl (686.6 kB view details)

Uploaded Python 3

pyinstaller-6.8.0-py3-none-manylinux2014_aarch64.whl (684.3 kB view details)

Uploaded Python 3

pyinstaller-6.8.0-py3-none-macosx_10_13_universal2.whl (956.4 kB view details)

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

File details

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

File metadata

  • Download URL: pyinstaller-6.8.0.tar.gz
  • Upload date:
  • Size: 4.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.0

File hashes

Hashes for pyinstaller-6.8.0.tar.gz
Algorithm Hash digest
SHA256 3f4b6520f4423fe19bcc2fd63ab7238851ae2bdcbc98f25bc5d2f97cc62012e9
MD5 4426efe670093419cf7ccff4676d029c
BLAKE2b-256 a2c82802bbf8abe0312ba1250f0c20158db202135ed0475c88e19944ef11cdad

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyinstaller-6.8.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 1c3060a263758cf7f0144ab4c016097b20451b2469d468763414665db1bb743d
MD5 3f9da7f945cd5c38caaedec0c95ea2e7
BLAKE2b-256 1f331a137437543c992eb7f1d20afd4cfc10f7d61eef9bbbb7c042afb40083ef

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyinstaller-6.8.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 81cccfa9b16699b457f4788c5cc119b50f3cd4d0db924955f15c33f2ad27a50d
MD5 0fda9a06a966f773ec010ee4cc1d5442
BLAKE2b-256 f658464fb19d8269e9c13a8dfad537fa38377f3ba55887789743b26566cf5977

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-6.8.0-py3-none-win32.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.0

File hashes

Hashes for pyinstaller-6.8.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 d257f6645c7334cbd66f38a4fac62c3ad614cc46302b2b5d9f8cc48c563bce0e
MD5 d4868878982bf11a35a95f1e2a811526
BLAKE2b-256 cbd8abd04293179fc2ddcd0c9c34c2272e04893021d5d558936ecbe51b1596d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.8.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 fe0af018d7d5077180e3144ada89a4da5df8d07716eb7e9482834a56dc57a4e8
MD5 527bd1b9e4808f667c90c5a492d3153c
BLAKE2b-256 7e8bdeb0e8db266ecfc3d51ec8eb61649a187360c446b71717196395a3eab20e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.8.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 000c36b13fe4cd8d0d8c2bc855b1ddcf39867b5adf389e6b5ca45b25fa3e619d
MD5 33a66bb3a6d027c258b834e06a258d55
BLAKE2b-256 73fc061cee4eb30f1aa63e59e0437afde467b0fb068ebde6f420072e4bcd464b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.8.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ff31c5b99e05a4384bbe2071df67ec8b2b347640a375eae9b40218be2f1754c6
MD5 1917cccdda6b64363a383c1772528661
BLAKE2b-256 e6c62ade4158693ff5ed305779a88e958c13894de0982562a16120c943f990dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.8.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 2b71509468c811968c0b5decb5bbe85b6292ea52d7b1f26313d2aabb673fa9a5
MD5 724593ebdb952f085efc9718509e5c21
BLAKE2b-256 2c5c10f0125ca835560724522555753aadf638a644417f32ee02acab5c6f9b1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.8.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 6303c7a009f47e6a96ef65aed49f41e36ece8d079b9193ca92fe807403e5fe80
MD5 f5473a7471e621077dd17170e91675b5
BLAKE2b-256 ec2f97e860dc76af343ecceb2a80a433506f1bb5065adedd170c7be94b700492

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.8.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 355832a3acc7de90a255ecacd4b9f9e166a547a79c8905d49f14e3a75c1acdb9
MD5 f7aadbdf6cfaa17794e7aee25f329c5a
BLAKE2b-256 4024491ef6b8e800114f77c71149a7734d3657e7ca9a4c8d7db6f3d89a0ea5f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.8.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 39ac424d2ee2457d2ab11a5091436e75a0cccae207d460d180aa1fcbbafdd528
MD5 899b7ff482644621676813e1edd12d0f
BLAKE2b-256 30d0a36339cdad3d53ee85f47acc57c83a0e3ae1490dae752fd43e36b4f3ac9f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinstaller-6.8.0-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 5ff6bc2784c1026f8e2f04aa3760cbed41408e108a9d4cf1dd52ee8351a3f6e1
MD5 80c79550a6e2dffda41fe90bb7cb5c51
BLAKE2b-256 c2733300c9647230aff404262418cb68b43749061336c110be00bc16d2342e59

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