Skip to main content

PyInstaller bundles a Python application and all its dependencies into a single package.

Project description

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.readthedocs.io/

Website:

http://www.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.7-3.10.

  • 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, Django, 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.)

  • Libraries like PyQt5, PySide2, wxPython, matplotlib or Django are fully supported, without having to handle plugins or external data files manually.

  • 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.7-3.10

  • tinyaes 1.0+ (only if using bytecode encryption). Instead of installing tinyaes, pip install pyinstaller[encryption] instead.

  • Windows (32bit/64bit):

  • 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.

  • GNU/Linux (32bit/64bit)

  • 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.

  • macOS (64bit):

  • macOS 10.15 (Catalina) or newer.

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

  • PowerPC GNU/Linux (Debian)

Before using any contributed platform, you need to build the PyInstaller bootloader, as we do not ship binary packages. Download PyInstaller source, and build the bootloader:

cd bootloader
python ./waf all

Then install PyInstaller:

python setup.py install

or simply use it directly from the source (pyinstaller.py).

Support

See http://www.pyinstaller.org/support.html for how to find help as well as for commercial 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-5.1.tar.gz (2.3 MB view details)

Uploaded Source

Built Distributions

pyinstaller-5.1-py3-none-win_amd64.whl (1.2 MB view details)

Uploaded Python 3 Windows x86-64

pyinstaller-5.1-py3-none-win32.whl (1.1 MB view details)

Uploaded Python 3 Windows x86

pyinstaller-5.1-py3-none-musllinux_1_1_x86_64.whl (548.1 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

pyinstaller-5.1-py3-none-musllinux_1_1_aarch64.whl (551.3 kB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

pyinstaller-5.1-py3-none-manylinux2014_x86_64.whl (547.4 kB view details)

Uploaded Python 3

pyinstaller-5.1-py3-none-manylinux2014_s390x.whl (547.5 kB view details)

Uploaded Python 3

pyinstaller-5.1-py3-none-manylinux2014_ppc64le.whl (554.8 kB view details)

Uploaded Python 3

pyinstaller-5.1-py3-none-manylinux2014_i686.whl (551.2 kB view details)

Uploaded Python 3

pyinstaller-5.1-py3-none-manylinux2014_aarch64.whl (549.6 kB view details)

Uploaded Python 3

pyinstaller-5.1-py3-none-macosx_10_13_universal2.whl (820.9 kB view details)

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

File details

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

File metadata

  • Download URL: pyinstaller-5.1.tar.gz
  • Upload date:
  • Size: 2.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/0.1.dev1+gf543114 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for pyinstaller-5.1.tar.gz
Algorithm Hash digest
SHA256 9596c70c860cbce19537354db95b180351959b4cd14a70db6ab1d1432668c313
MD5 b3e548c834a65d486d5fc7111824983f
BLAKE2b-256 c941fbb2f0e6e1934a47a99295d67ba178477f8809ae939c96608c711596f478

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-5.1-py3-none-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/0.1.dev1+gf543114 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for pyinstaller-5.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 996e296d1dfe27c3e89efc26dbcc247f49c0801a9b5e22e2b39f5b983cf5c2f5
MD5 b7721c4858e4c1fce8a3d2e60ea1b4ed
BLAKE2b-256 390cfcedab1fc19e4a7b275c5298bb9c69e411d5092ceaf5a167b611de4c023d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-5.1-py3-none-win32.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/0.1.dev1+gf543114 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for pyinstaller-5.1-py3-none-win32.whl
Algorithm Hash digest
SHA256 a90ee3181c88aed0893bf537a50ad547655f5d555a5b731215a5fe1946d2f3db
MD5 268bf53499d1cf91d84c2a878b2b1ee6
BLAKE2b-256 a065cee46171fa606c3e2cc2bf3eb8c9139520112bfca2421ed2f797c10ba372

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-5.1-py3-none-musllinux_1_1_x86_64.whl
  • Upload date:
  • Size: 548.1 kB
  • Tags: Python 3, musllinux: musl 1.1+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/0.1.dev1+gf543114 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for pyinstaller-5.1-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 29b3f17d75ff58b12db7b0116df1b3382c8345aefd500a177987eaf0599dec03
MD5 c091f2e9a9797fc24f6aaa4c1ca62e73
BLAKE2b-256 a1341f9c35b315cbd33ceff3c2a6f3cb574f95dbbc0bbb4b5f49fa635a2eb2dd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-5.1-py3-none-musllinux_1_1_aarch64.whl
  • Upload date:
  • Size: 551.3 kB
  • Tags: Python 3, musllinux: musl 1.1+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/0.1.dev1+gf543114 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for pyinstaller-5.1-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 d3852c1f8fe6ca2f5c7942c845dc6d1f6140aa7860fe3500eac3ac88875d1dd4
MD5 7de22a47a8ea60fd526c1cd5729cb2a6
BLAKE2b-256 0646398b0e20ff4e8bd11df8b21ba55f0cc5b4433f5c59e3ff32fa1fdf4c54a5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-5.1-py3-none-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 547.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/0.1.dev1+gf543114 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for pyinstaller-5.1-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 588f2840c27a8a7e1b1fa361f107a1060c5096b36d3c94c243b23687ee41609d
MD5 3f7bb9aa23398ec0a6398e345ce4e85b
BLAKE2b-256 c6de2dc9640fc5631af7a152d710749765311b1b009e3651877ae9b78ebac31e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-5.1-py3-none-manylinux2014_s390x.whl
  • Upload date:
  • Size: 547.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/0.1.dev1+gf543114 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for pyinstaller-5.1-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 c421b46ebf81ad4498de480640ce1a47ac15dfd3938dfc2e1c0846cb5cdb0c59
MD5 4bb301b1886b4b44645c8708dc286d63
BLAKE2b-256 245d31641d6f1acb75ba0ef30ab1385edf5762ee84cd51cbaf31613218d036da

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-5.1-py3-none-manylinux2014_ppc64le.whl
  • Upload date:
  • Size: 554.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/0.1.dev1+gf543114 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for pyinstaller-5.1-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 d8bfe5c32b4b5aaa91a5c1c7912fe3e5d13e7671f3468ee7742ec71ca192a975
MD5 b948767dd18eeb7ed6007102507a65f0
BLAKE2b-256 d3f55303f2e0408d5398505fe53cd18400c3d1cde03da4ffc6c443bff98d7dd2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-5.1-py3-none-manylinux2014_i686.whl
  • Upload date:
  • Size: 551.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/0.1.dev1+gf543114 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for pyinstaller-5.1-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f786cb013ebfd3fb23ddb46285902663e31256220b12b368f8c36e859a77ebc9
MD5 98fe5a5df2350ee2cd882074c47dae42
BLAKE2b-256 6c0253539d9d5006fc5664aa76d8a4a87a94088d74618136cad1c3ecbcaaebd4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-5.1-py3-none-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 549.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/0.1.dev1+gf543114 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for pyinstaller-5.1-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ac003d49bbd62f6712b5631487049cee4f0a07445dd31c6d05e5724e33689fca
MD5 be2f6fa2b24e8742dc1d9bade2cfe553
BLAKE2b-256 5b1f6ae0e7f8f1b3e4c6d56df83fdee78796173d123c15e5f159eee4c726f0df

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstaller-5.1-py3-none-macosx_10_13_universal2.whl
  • Upload date:
  • Size: 820.9 kB
  • Tags: Python 3, macOS 10.13+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/0.1.dev1+gf543114 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for pyinstaller-5.1-py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 3c9bc373b4a4bf6d81b306b9918e290a3de582d7b50a0f6f4e837970a4db0c54
MD5 1e499cc6b00d238d562bbaa7b413dd0c
BLAKE2b-256 7aabc2b83ebd76b77584c6673e137508529f2027e23578afe74740524f615483

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