While source and wheel distributions are useful, they both require Python and any necessary library dependencies to be installed on a system before the program can be run. Often, it would be much handier if we could provide a file or set of files that can simply be copied and run on a system without installing anything else first. Better yet, we'd like to have platform-specific installation packages that set up shortcuts and other data.
There are several ways to go about this with Python code, and several projects to choose from; we're going to look at one called cx_Freeze.
The basic idea of cx_Freeze is to bundle up all the code and shared library files for a Python project along with a Python interpreter, and then generate a small executable file that will launch the code with the bundled interpreter. This approach works fairly well most of the time, but, as we'll see, there are some limitations and difficulties to work around. One significant limitation is that cx_Freeze...