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:
- 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 directory of the os library. We'll use this to locate the Tcl and Tk libraries.
- Now add the environment variables...