Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In CMD "python" starts Python 3.3, "py" starts Python 2.7, how do I change this?

Brand new Python, just getting things set up and installed before I start messing around with things. My understanding is that there are some notable differences/incompatibilities between Python 2.7 and Python 3.3, though both versions are well used, so I thought it best to install both (In their own install directories).

When installing, I used the new 3.3 feature where the installer set the PATH variables for me, however this option is not present for 2.7. After installing both versions, I tried a quick test, opened command prompt, and typed python to bring up an interactive session, and as I hoped, it brought up python 3.3.

I am also aware of the shorter py command. However when I try py in command prompt, it brings up python 2.7. I can use py -3 to bring up 3.3, but that makes it longer than it needs to be, and seeing as I will be dealing primarily with version 3.3, I would like py and python to both bring up a Python 3.3 interactive session.

I am somewhat familiar with Window's PATH system, but I can't see why this is happening. How can I set it up so that both py and python, when typed into a windows command prompt, will start a Python 3.3 interactive session unless otherwise specified, e.g. via something like py -2?

Thanks.

like image 820
Tomha Avatar asked Jan 21 '14 11:01

Tomha


People also ask

Can you have Python 2 and 3 at the same time?

We can have both Python 2 and Python 3 installed on any Windows or Linux device. We can either create different environments on different IDEs to use the versions separately or use the following ways to run them using the command prompt.


1 Answers

py is the Windows Python launcher, and it can start any Python version.

On most systems py is configured to launch Python 2.7 by default if present (this is the default except for Python 3.6 and newer, where Python 3 will be run instead). You have two options if you want to change that:

  1. Set an environment variable; PY_PYTHON=3 will make py run the latest Python 3 interpreter instead.

  2. Create a file py.ini in your application directory with the contents:

    [defaults]
    python=3
    

    This has the same effect as the PY_PYTHON environment variable. Typically, your application directory is found in C:\Documents and Settings\[username]\Application Data or C:\Users\[username]\AppData\Local\py.ini, depending on the Windows version.

You can also add a #! shebang line to your scripts (first line) to tell the launcher to use Python 3 when you doubleclick such a file:

#! python3

py can also be configured to use specific Python versions when you have multiple Python 3 interpreters installed.

like image 89
Martijn Pieters Avatar answered Oct 07 '22 23:10

Martijn Pieters