Our great sponsors
-
EDMarketConnector
Downloads commodity market and other station data from the game Elite: Dangerous for use with all popular online and offline trading tools.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
Nuitka
Nuitka is a Python compiler written in Python. It's fully compatible with Python 2.6, 2.7, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, and 3.11. You feed it your Python app, it does a lot of clever things, and spits out an executable or extension module.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
I use py2exe to build https://github.com/EDCD/EDMarketConnector/ .
A simpler example ( for a tk/tkinter bug report ) is at https://github.com/Athanasius/tk-radio-buttons
Nuitka cross compiles your app into C++ then compiled that to create a signed binary. https://github.com/Nuitka/Nuitka.
Here is an example where I've used it to compile a semi-complex app: https://github.com/zackees/open-webdriver/blob/main/open_webdriver/tests/nuitka/test_binary_build.py
I tried them all and NSIS is the best tool I found to make Python bundles for Windows, especially for GUI frameworks such as Qt. It a bit of trial and error at first but it works great then. There is a Python wrapper called pynsist so you can simply call pynsist nsis.cfg to package your project. See here for an example config file.
Another option for packaging Python apps is the BeeWare project Briefcase (https://github.com/beeware/briefcase). The only limitation that exists in your specific case is Tkinter - Briefcase doesn't support packaging Tkinter apps, but it does support Qt and Toga (BeeWare's GUI toolkit) Toga; Toga is design to be as approachable as Tkinter.