To install Python with winget, you can use the following command:

winget install -e --id Python.Python.3.11 --scope machine

This command says "Install the app with the exact id Python.Python.3.11 for all users on the machine."

To check that the installation was successful, enter python into a new command prompt. This should start the Python interpreter.

Installing other Python versions

The command above installs Python 3.11. To see which other versions are available, you can use:

winget search --id Python.Python

This gives:

Name        Id                 Version   Source
------------------------------------------------
Python 2    Python.Python.2    2.7.18150 winget
Python 3    Python.Python.3.0  3.0.1     winget
Python 3    Python.Python.3.1  3.1.4     winget
Python 3    Python.Python.3.2  3.2.5     winget
Python 3    Python.Python.3.3  3.3.5     winget
Python 3    Python.Python.3.4  3.4.4     winget
Python 3    Python.Python.3.5  3.5.4     winget
Python 3    Python.Python.3.6  3.6.8     winget
Python 3    Python.Python.3.7  3.7.9     winget
Python 3    Python.Python.3.8  3.8.10    winget
Python 3    Python.Python.3.9  3.9.13    winget
Python 3.10 Python.Python.3.10 3.10.11   winget
Python 3.11 Python.Python.3.11 3.11.4    winget
Python 3.12 Python.Python.3.12 3.12.0b4  winget

The suffix 0b4 in version 3.12 indicates a beta version.

As another example from the table, we can install Python 3.9 with the command:

winget install -e --id Python.Python.3.9 --scope machine

Install location

Because we passed the flag --scope machine above, Python was installed for all users. In our specific examples, its installation directories are C:\Program Files\Python311 and C:\Program Files\Python39, respectively. If we had not passed the flag, then Python would have been installed for the current user only. In this case, the installation directories would have been C:\Users\<YourUser>\AppData\Local\Programs\Python\Python311, etc.

It is possible to customize the install location with the --location flag:

winget install -e --id Python.Python.3.11 --location C:\Python311

This installs Python into C:\Python311.

Python 2

We can see from the above table that it's also possible to install Python 2 with winget:

winget install -e --id Python.Python.2

It doesn't matter whether we pass --scope machine here because this always performs a system-wide installation. The installation directory is C:\Python27.

The PATH environment variable

The Python 3 installers add Python to the PATH environment variable. This lets us write python in a (new) command prompt window to launch the interpreter. Python 2 does not add itself to the PATH.

Multiple Python versions

When you try to install multiple Python versions with winget, you will get a message Found an existing package already installed. Trying to upgrade the installed package... This means that you cannot use winget to manage multiple parallel Python installations. There are other tools that let you achieve this, such as pyenv-win.

Get Started in No Time

winget.pro makes it super easy to host private winget repositories. Sign up and use the Windows Package Manager to deploy your applications in minutes.