Building Windows executables with cx_Freeze

To get our build working correctly on Windows, we'll need to work around a couple of bugs in the current versions of cx_Freeze and Python 3.6: first, cx_Freeze relies on two environment variables pointing to the location of the Tcl and Tk libraries, which are no longer set on Windows, and, second, it fails to copy the Tcl and Tk DLL files to the program directory. Take the following steps to correct this:

  1. Start by creating a conditional block for Windows builds in cxsetup.py:
import platform
import os
if platform.system() == "Windows":
    PYTHON_DIR = os.path.dirname(os.path.dirname(os.__file__))

Inside the block, we're determining the directory containing our Python installation by getting the parent ...

Get Python GUI Programming with Tkinter now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.