CHECKS OF PYTHON TO EXE krueng.ai/python_to_exe.html The page says how big each app is, how long it takes to build and to open, how much memory it holds, how often Windows blocked it, and what the AI model answered. None of those numbers was typed in from memory. Each one was printed by a script in this folder, and each script's output is saved beside it as a *_output.txt file. The page shows those files. Run the scripts again and compare. WHAT YOU NEED 1. The page's three files in one folder: hello.py, pond.py and get_model.py. Every code block on the page has a Download button. 2. These scripts, in a folder named "checks" inside that folder: your folder/ hello.py pond.py get_model.py model/ (only for the checks that use the AI model) checks/ README.txt builds.py pond_plays.py ... Each script looks for the page's files one folder up. What the scripts build goes into checks/made/, so nothing is left beside your own files. That folder gets big: more than 4 GB after "builds.py model", which also makes a zip. Delete it when you are done. 3. Windows, for every script that starts an app. They find the app's window and close it through Windows itself. pond_plays.py, fair_game.py, wording.py and model_files.py use nothing that only Windows has, but we ran them on Windows only. 4. Two Pythons, as on the page: - "venv": python -m venv venv, then venv\Scripts\python -m pip install pyinstaller - "venv_model", for anything with the AI model: python -m venv venv_model, then venv_model\Scripts\python -m pip install pyinstaller "decider-ai[gguf]" --only-binary llama-cpp-python --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cpu and the model itself: python get_model.py (1.3 GB into the folder "model") Run every script from the checks folder. The list says which Python each one needs. Windows open and close by themselves while they run. Keep the mouse out of them. Close every "hello" and "pond" window of your own first. The scripts find an app's window by its title, so they would time your window, and then close it. Plug a laptop in, or set it not to go to sleep. The scripts run for minutes with no key pressed. On battery ours went to sleep five minutes after the last key, in the middle of a start, and builds.py then printed "no window in 300 s" for that app. THE SCRIPTS builds.py needs venv Builds hello.py and pond.py the five ways the page shows. For each build: the seconds it took, the size and number of files, the seconds from the start of the app to its window (the first start, then the middle of three later starts), the most memory the app held with its window open for 5 seconds, and the size of a zip of the app. Every app is started with a PATH that holds only Windows' own folders, so it cannot use the Python on the computer. About 2 minutes. -> builds_output.txt builds.py model needs venv_model and the model Three builds made by the Python that has the AI library. First hello.py and pond.py with nothing added, to see what that Python packs by itself: hello.py imports none of the library, and pond.py has one import of it. Then the big build: pond.py with the AI model inside. Its window stays open for 40 seconds before the memory is read, so that the model has loaded and answered. About 7 minutes, and more when Windows blocks a build and it is built again. -> builds_model_output.txt inside.py needs any Python The biggest things inside an app, and their sizes. -> inside_output.txt (hello) and inside_model_output.txt (pond with the model) start_time.py needs any Python Seconds from the start of a program to its window. Not used by builds.py, which has its own copy of this; it is here to time your own apps. With "python" and a script in place of the app it times plain Python. -> start_time_output.txt (python hello.py) smart_app_control.py 40 needs venv Builds hello.py 40 times, half as one folder and half as one file, starts each new app once, and counts how many Windows blocked. A blocked app is tried again a second later and once more at the end. About 6 minutes. Where Smart App Control is off, the answer is 0. -> smart_app_control_output.txt smart_app_control.py again needs venv Builds nothing. Starts every app the last run left in checks/made/ and counts the blocked ones again. Run it the next day. -> smart_app_control_again_output.txt app_behaviour.py errors needs venv Builds two tiny windowed apps that divide by zero, one in its main part and one in a second thread, and prints which windows appear. -> app_errors_output.txt app_behaviour.py unpack needs venv Builds hello.py as one file, starts it, and looks in the TEMP folder for the folder it unpacked itself into, while it runs and after it has closed. -> app_unpack_output.txt app_behaviour.py offline needs the app that "builds.py model" made Starts the game with the model and asks Windows, several times a second for 40 seconds, which network connections belong to it. -> app_offline_output.txt pond_plays.py bot | eaten | win | hide | main needs any Python (venv_model for "model") pond.py in a real window with nobody at the mouse. "bot": a simple player swims for food and away from danger. "eaten": the fish waits in front of a hunter, the game ends, and the Space key starts a new one. "win": the fish starts bigger than every hunter and eats them all. "hide": the fish sits under a leaf and every hunter wanders. "main": the file started through its own main() for 6 seconds. Add the word "model" to play with the AI model: pond_plays.py bot model -> pond_plays_output.txt (the five scenarios, with the rules game) -> pond_plays_model_output.txt ("bot" and "hide", with the AI model) fair_game.py 100 needs any Python Plays the rules game 100 times with no window, with each of two simple players, and counts the endings. A careful player should win most games and a greedy one should not. This is the test that chose the numbers at the top of pond.py. -> fair_game_output.txt wording.py needs venv_model and the model Asks the model the four things a hunter can be told about your fish, as each of the three kinds of hunter, with the three moves in all six orders: 72 questions. Each answer is compared with the Python rules in pick(). About 4 minutes. -> wording_output.txt wording.py first needs venv_model and the model The same with our first wording, which failed: 90 questions. -> wording_first_output.txt model_files.py needs any Python, and the internet Compares the five files in the folder "model" with the size and the fingerprint the site gives for each. It downloads nothing but that list. -> model_files_output.txt flags.py needs venv Builds nothing. Prints the help text of the PyInstaller in that Python, then counts its options and lists every name. The cheat sheet at the end of the page was written from this output. Under a second. -> flags_output.txt WHAT WE RAN, AND WHEN Everything was run on 6 and 7 October 2026 on one laptop: Windows 11 Home 25H2 (build 26200.9457), an Intel Core Ultra 7 155H with 24 GB of memory and no graphics card that the model could use, Python 3.12.10 with Tk 8.6.15, PyInstaller 6.22.3, decider-ai 1.8.1, llama-cpp-python 0.3.36, PyTorch 2.14.1 and transformers 5.18.0. Smart App Control was on, and nobody changed that. smart_app_control_output.txt is from 6 October, 17:57 to 18:03. Its second part, smart_app_control_again_output.txt, is from the next morning, 07:44. flags_output.txt is from 10 October. The other outputs are from 7 October. Nothing here was run on a Mac. We do not have one. THINGS TO KNOW - Your numbers will differ. Sizes should be close to ours. Times depend on your computer and on what else it is doing. - Windows decides about each new .exe by asking Microsoft's servers, so the count from smart_app_control.py is different on every run, and on another day. - A build that Windows blocks is built again by builds.py and by app_behaviour.py, up to five times. builds.py prints how many builds it needed. - The first start of a new .exe is slower than later starts. builds.py prints both. - wording.py prints the same shares on every run on our laptop. On another kind of processor the last digits can differ. - The simple player in "pond_plays.py bot" is not careful, and is often eaten in a few seconds. That scenario is there to see the window, the hunters and the labels work. fair_game.py is the one that says whether the game can be won.