I use pyinstaller to make a standalone executable file for the program.
Then, to make a Windows installable executable file, I use the free Inno setup.