PyInstaller bundles a Python application and all its dependencies into a single package, on Windows, macOS and Linux. The user can run the packaged app without installing a Python interpreter or any modules.

Despite it's name PyInstaller doesn't actually create installers. On Windows it can create one-file executables containing the application & all it's dependencies. However, usually you will want to take the output of PyInstaller and bundle it into an installer using a tool like InstallForge or NSIS (Windows). On macOS PyInstaller does produce .app bundles, which you can bundle onto a Disk Image for distribution. On Linux you can use the fpm tool to take the output of PyInstaller and turn it into a .deb package.

Explore PyInstaller

Showing articles for All (27) PyQt6 (10) PySide6 (3) PyQt5 (8) Streamlit (0) Tkinter (1) PySide2 (3) Kivy (0)

Packaging Tkinter applications for Windows with PyInstaller & InstallForge

Turn your Tkinter application into a distributable installer for Windows

Packaging PyQt6 applications for Windows with PyInstaller & InstallForge

Turn your PyQt6 application into a distributable installer for Windows

Packaging PySide2 applications for Windows with PyInstaller & InstallForge

Turn your PySide2 application into a distributable installer for Windows

Packaging PySide6 applications into a macOS app with PyInstaller

Turn your PySide6 application into a distributable macOS .app bundle and disk image

Packaging PySide6 applications for Windows with PyInstaller & InstallForge

Turn your PySide6 application into a distributable installer for Windows

Running Python script with QProcess after freeze

How to bundle and run external Python scripts from a frozen PyQt6 application

Problems with antivirus software and PyInstaller

Why antivirus tools flag PyInstaller executables and what you can do about it

Packaging PySide6 and PyQt6 Apps with PyInstaller

Solving the missing Qt platform plugin error when building executables

Packaging PyQt5 applications into a macOS app with PyInstaller

Turn your PyQt5 application into a distributable macOS .app bundle

Packaging PySide2 applications into a macOS app with PyInstaller

Turn your PySide2 application into a distributable macOS .app bundle

Packaging PyQt6 applications into a macOS app with PyInstaller

Turn your PyQt6 application into a distributable macOS app bundle

Using Qt Resource Files (.qrc) with PyInstaller and PyQt

How to include pyrcc5-compiled resources when packaging your PyQt application

Fixing DLL Loading Errors When Packaging PyQt Apps with PyInstaller

How to solve "Could not find module .dll" errors when running your packaged app on other computers

PyInstaller macOS issue with QCombobox not refreshing

Fixing widget redraw problems in PyQt5 apps packaged with PyInstaller on macOS

Solving Common PyInstaller Problems on macOS

How to fix file paths, reduce bundle sizes, and handle macOS-specific packaging issues

Fixing Missing Icons in PyInstaller-Packaged PyQt6 Applications on Windows

Why your app icon disappears after packaging and how to fix it

Packaging Python Apps That Use scikit-learn with PyInstaller

How to solve hidden import errors when bundling scikit-learn and other complex packages

Setting Window Icons in PyQt5 Apps Packaged with PyInstaller

How to bundle and display icons correctly in your packaged PyQt5 applications

Packaged installer file sizes for PyQt apps

Understanding and reducing the size of Python GUI application installers

Packaging PyQt5 applications for Windows with PyInstaller & InstallForge

Turn your PyQt5 application into a distributable installer for Windows

Packaging PyQt5 applications for Linux with PyInstaller & fpm

Turn your PyQt5 application into installable Linux packages

Goodforbitcoin — A Cryptocurrency Market Tracker Built with Python & Qt5

Track cryptocurrency market values and trade volumes using PyQt5, PyQtGraph, and the CryptoCompare API

Packaging PyQt5 apps with fbs

Distribute cross-platform GUI applications with the fman Build System