On Fri, Jul 7, 2017 at 7:53 AM, Steve D'Aprano <steve+pyt...@pearwood.info> wrote: > On Fri, 7 Jul 2017 04:30 pm, Ben S. wrote: > >> Is there a way to execute a python script with v3 python engine in v2 >> compatibility mode? I am thinking about a command parameter like (python.exe >> is v3.*): >> >> python.exe -execute_as_v2 myscript.py > > No. Python 3 is always Python 3, and Python 2 is always Python 2. But what you > can do is install both, and then call > > python2.exe myscript.py > > python3.exe anotherscript.py
Windows Python installs two loaders for each version of Python: python.exe and pythonw.exe. No links or copies are created for pythonX[w].exe, pythonX.Y[w].exe, or pythonX.Y-32[w].exe. Instead, there are separate py.exe and pyw.exe launchers that use the registry to find and execute a loader for a given version, e.g. py -2 myscript.py py -3.6-32 anotherscript.py As of 3.6, the py launcher defaults to the highest version of Python 3 that's installed. 64-bit Python is preferred on 64-bit Windows. The default version can be overridden by setting the PY_PYTHON environment variable. That said, you don't have to manually run a script as an argument of py.exe or python.exe. For a default Python 3 installation, if the PATHEXT environment variable contains ".PY", then you can run "script.py" as script arg1 ... argN in CMD or PowerShell. If a script has a Unix shebang, the launcher will read it to run the required version of Python, if that version is installed. -- https://mail.python.org/mailman/listinfo/python-list