How to switch between python 2.7 to python 3 from command line?

PythonWindowsCommand LineCmd

Python Problem Overview


I'm trying to find the best way to switch between the two python compilers, 2.7 to 3.3. I ran the python script from the cmd like this:

> python ex1.py

Where do I set the "python" environment in the window's environment variable to point to either python 3.3 or 2.7?

I am wondering if there is an easy way to switch between the two versions from the cmd line?

Python Solutions


Solution 1 - Python

No need for "tricks". Python 3.3 comes with PyLauncher "py.exe", installs it in the path, and registers it as the ".py" extension handler. With it, a special comment at the top of a script tells the launcher which version of Python to run:

#!python2
print "hello"

Or

#!python3
print("hello")

From the command line:

py -3 hello.py

Or

py -2 hello.py

py hello.py by itself will choose the latest Python installed, or consult the PY_PYTHON environment variable, e.g. set PY_PYTHON=3.6.

See Python Launcher for Windows

Solution 2 - Python

For Windows 7, I just rename the python.exe from the Python 3 folder to python3.exe and add the path into the environment variables. Using that, I can execute python test_script.py and the script runs with Python 2.7 and when I do python3 test_script.py, it runs the script in Python 3.

To add Python 3 to the environment variables, follow these steps -

  1. Right Click on My Computer and go to Properties.
  2. Go to Advanced System Settings.
  3. Click on Environment Variables and edit PATH and add the path to your Python 3 installation directory.

For example,

enter image description here

Solution 3 - Python

In case you have both python 2 and 3 in your path, you can move up the Python27 folder in your path, so it search and executes python 2 first.

Solution 4 - Python

They are 3 ways you can achieve this using the py command (py-launcher) in python 3, virtual environment or configuring your default python system path. For illustration purpose, you may see tutorial https://www.youtube.com/watch?v=ynDlb0n27cw&t=38s

Solution 5 - Python

simply add both to the env variables and then you have to move the version you want to the top

Solution 6 - Python

There is an easier way than all of the above; You can use the PY_PYTHON environment variable. From inside the cmd.exe shell;

For the latest version of Python 2

set PY_PYTHON=2

For the latest version of Python 3

set PY_PYTHON=3

If you want it to be permanent, set it in the control panel. Or use setx instead of set in the cmd.exe shell.

Solution 7 - Python

Are you using Python version 3+?

  1. Go to your project path
  2. Run py -[version_number_here] and hit Enter -> This will open the Python's Terminal (sort of)

Happy Coding 酪

Solution 8 - Python

You can try to rename the python executable in the python3 folder to python3, that is if it was named python formally... it worked for me

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJPCView Question on Stackoverflow
Solution 1 - PythonMark TolonenView Answer on Stackoverflow
Solution 2 - PythonSukrit KalraView Answer on Stackoverflow
Solution 3 - PythonPhilip LView Answer on Stackoverflow
Solution 4 - PythonTimothy MugayiView Answer on Stackoverflow
Solution 5 - PythonMOHAMMED NABAWYView Answer on Stackoverflow
Solution 6 - PythonehambrightView Answer on Stackoverflow
Solution 7 - PythonKennView Answer on Stackoverflow
Solution 8 - PythonahmadoreView Answer on Stackoverflow