.pyw files in python program

Python scripts (files with the extension .py) will be executed by python.exe by default. This executable opens a terminal, which stays open even if the program uses a GUI. If you do not want this to happen, use the extension .pyw which will cause the script to be executed by pythonw.exe by default (both executables are located in the top-level of your Python installation directory). This suppresses the terminal window on startup.

You can also make all .py scripts execute with pythonw.exe, setting this through the usual facilities, for example (might require administrative rights):

https://docs.python.org/2/using/windows.html

So in practice the only difference is that one leaves a console window hanging around and the other doesn’t. The most obvious usage for *.pyw are GUI apps since an app with an independent GUI obviously does not need or want the console window around.

There are some subtle implementation differences between python.exe and pythonw.exe see https://stackoverflow.com/a/30313091/3703989

Leave a Comment