Packaging Python Applications with PyInstaller

The handy guide to distributing Python apps

Packaging Python Applications with PyInstaller

1st Edition, June 2022

There is not much fun in creating your own applications if you can't share them with other people, whether publishing it commercially or sharing it online. Distributing your apps allows other people to benefit from your hard work!

Unfortunately, packaging Python applications can sometimes be hard work.

In this book I walk you step-by-step through the process of packaging your own Python applications. Starting with simple examples and working up to complete installers and signed executables.

I've been packaging Python applications for years (honestly, it feels longer). With this book you get the benefit of that experience & save yourself the pain!

[[ displayPrices['pri_01hf77hrbf5v8z5kjtwbhmbwjz'] ]]

Buy now

Includes working examples in PyQt6, PySide2, PySide6, PyQt5, Tkinter, PySimpleGUI, wxPython and Kivy

Purchasing Power Parity

To support developers in [[ country ]] I give [[ discount.discount_pc ]]% off on all books & courses. Use code [[ discount.coupon_code ]] in the checkout.
Get [[ discount.discount_pc ]]% off for the next [[ discount.duration ]] [[ discount.description ]] with the code [[ discount.coupon_code ]]

Create GUI Applications with Python & Qt6 [[ displayPrices['pri_01hf77bjcgxgghzq88pwh1nqe2'] ]]

Create GUI Applications with Python & Qt6 is the #1 guide to creating GUI applications with Python. This edition teaches you how to build apps using PyQt6.

Add Added

Create GUI Applications with Python & Qt6 [[ displayPrices['pri_01hf77d6fwm397veg5k5s46xcf'] ]]

Create GUI Applications with Python & Qt6 is the #1 guide to creating GUI applications with Python. This edition teaches you how to build apps using PySide6.

Add Added
  • 160+ page ebook of hands-on packaging examples
  • Includes PyQt6, Tkinter, PySimpleGUI, wxPython and Kivy examples in the book
  • Plus PySide2, PySide6 and PyQt5 examples in the source downloads
  • Email support for readers
  • Code free to reuse in your own projects
  • PDF, EPub and Kindle formats
  • Lifetime updates — you get new editions for free.

Or see bundles

About the Author

Martin Fitzpatrick is a Python programmer, author and tutor. He's been developing Python/Qt apps for 10 years. Starting out building desktop applications to make data-analysis tools more user-friendly, Python was the obvious choice. Starting with Tk, later moving to wxWidgets and finally adopting PyQt & PySide.

Table of Contents

  1. Getting Started with PyInstaller p2-20
    • What is PyInstaller?
    • Installing PyInstaller
    • Packaging My first app
  2. Tweaking your build p21-85
    • Naming your application
    • Application Icons
    • Working with Relative paths
    • Data files & Resources
    • Bundling data folders
    • Hidden imports, Excludes & Binaries
  3. Building Installers p86-113
    • Creating Windows Installers (InstallForge)
    • Creating macOS Disk Images
    • Creating Linux Packages with fpm
  4. Signing Executables p114-119
    • Signing Windows Executables (signtool)
    • Signing macOS Application Bundles
  5. Advanced Packaging p120-150
    • Better Relative Paths
    • Detecting the Current Platform
    • Working with command-line arguments
    • Optimizing Packages
    • PyInstaller Hooks
  6. Troubleshooting p151-162
    • Build doesn't complete
    • Built application doesn't run

Bundles

Great GUI Book Bundle [[ displayPrices['pri_01hf72pfd4x7s46jhcjcgh0q73'] ]]

Buy now More info

Frequently Asked Questions

How will I get my purchase?

After completing your purchase you'll receive an email with a link to get your files and course. Keep it secret, keep it safe.

How do I get updates?

You'll receive an email when new content is available, although you can opt out of this if you wish.

What if I don't like it?

If you decide that it is not for you, just reply to the purchase receipt email within 30 days and I'll issue you with a refund. If you could tell me why, that would be great too but it's not necessary.

I have other questions

If you still have questions just drop me an email