From Python 3.3 a launcher for Windows is included: py (and pyw for GUI or non-UI applications)
which aids in locating and executing of different Python versions. It allows scripts (or the command-line) to indicate a preference for a specific Python version, and will locate and execute that version.
Unlike the PATH variable, the launcher will correctly select the most appropriate version of Python. It will prefer per-user installations over system-wide ones, and orders by language version rather than using the most recently installed version.
Python installer links Python's file extensions to open verb by default, so you can run a python file simply by typing its name (and args if needed).
Caveat: be aware of the differences between python.exe and pythonw.exe
Among other advantages, Windows launcher reads 'nix shebangs, so you can specify Python version or python.exe's command line arguments
You can check this running this script (supposing py3 as default):
#! /usr/bin/python2.7 -i
import sys
print(sys.version)
myscript.py: runs with py, launches python2.7 and enters in interactive mode after finished (-i, great option for testing and debugging).
myscript.py -3: runs with py, launches python3 and keeps interactive mode.
python myscript.py: runs with default python runtime, no interactive mode.
You can change this default association with ftype, but I would strongly recommend:
You can easily associate other verbs (like edit, test, debug...) to these files.
In addition, you can omit Python's extensions to run a file in a terminal by adding them to PATHEXT environment variable ordered by preference. (You must re-open the terminal for the change to take effect).
setx PATHEXT %PATHEXT%;.PYC;.PYZ;.PY