How to uninstall Python on Windows
This covers Python 3.12 installed from the official python.org installer, through the Python.Python.3.12 winget package, per-user scope. That installer puts the interpreter, pip and the standard library in one folder and, separately, installs the Python Launcher (the py command) so several Python versions can share it. Removing Python 3.12 does not remove the Launcher, and it does not touch any virtual environments, scripts or packages you built with it elsewhere on disk; back those up first if you might need them again.
The same guide also covers the separately measured Python 3.13.15 ARM64 user install through Python.Python.3.13; choose the package and folder for the version you intend to remove.
Close anything using Python first
Python itself keeps no background process or tray icon; it only runs while something is using it. Close any open interpreter, IDLE window, or terminal with an active virtual environment for this version before you uninstall.
Remove the app with its own uninstaller
Go to Settings › Apps › Installed apps, find Python 3.12, and choose Uninstall, or run:
winget uninstall --id Python.Python.3.12
This removes the Python 3.12 interpreter only. The Python Launcher is a separate entry in the same list; leave it if any other Python version on this PC still needs it.
For the measured 3.13 installation, use:
winget uninstall --id Python.Python.3.13 --exact
Where the data lives
| Location | What it holds | What to do |
|---|---|---|
%LOCALAPPDATA%\Programs\Python\Python312-arm64 (the folder name follows the version and architecture you installed) |
The interpreter, standard library, and every package you installed with pip into this version | Removed by the uninstaller; back up any packages or virtual environments you built here first |
%LOCALAPPDATA%\pip\Cache |
pip's own download cache, shared by every Python version on this account | Safe to remove; anything you reinstall just downloads again |
HKCU\SOFTWARE\Python\PythonCore\3.12 |
The registration (PEP 514) other tools use to find this install | Removed by the uninstaller |
| Start Menu "Python 3.12" folder | Shortcuts to the interpreter, IDLE and the documentation | Removed by the uninstaller |
If you have other Python versions installed, leave their folders, PATH entries and site-packages alone. This guide only covers the 3.12 install above.
The measured 3.13 program folder is %LOCALAPPDATA%\Programs\Python\Python313-arm64, with a separate Start Menu Python 3.13 folder. Save personal packages and environments in that interpreter folder first.
Check the result
Run these read-only commands after the uninstall finishes:
Get-Process python,pythonw -ErrorAction SilentlyContinue
winget list --id Python.Python.3.12
Test-Path "$env:LOCALAPPDATA\Programs\Python\Python312-arm64"
Get-ItemProperty "HKCU:\SOFTWARE\Python\PythonCore\3.12\InstallPath" -ErrorAction SilentlyContinue
py --list
- No output from
Get-Processonly means this query observed no matching process; a suppressed error leaves the running state unknown. - A completed
winget listquery with no match means the package record is gone; a matching row means the uninstall did not finish. Test-PathreturningFalsemeans the install folder is gone;Truemeans files remain there.- A completed
Get-ItemPropertyquery with no key means that registration is absent; access or query errors remain unverified. A returned path means it is still registered. py --listshows every Python version the Launcher still knows about; 3.12 should no longer appear in it, though other versions you kept will.
For 3.13, query its exact package and program folder. A completed query with no match shows that registration is absent; an error is unverified. Test-Path False means that path is absent, and True means files remain.
winget list --id Python.Python.3.13 --exact
Test-Path "$env:LOCALAPPDATA\Programs\Python\Python313-arm64"
If you installed it with winget
winget uninstall runs the same uninstaller Settings › Apps uses and removes the same interpreter files; it does not touch %LOCALAPPDATA%\pip\Cache or the Python Launcher on its own.
What Mole lists
For Python 3.12 installed per-user from winget:
- The Start Menu shortcut "Python 3.12" is selected by default.
- The uninstall entry names no install folder, so Mole finds the interpreter's folder through the PEP 514 registry key Python writes (
SOFTWARE\Python\PythonCore\<version>\InstallPath); what the uninstaller leaves there goes with the app row. - The Python Launcher is a separate app in the list; removing Python 3.12 does not remove it.
The 3.13 source run listed the program folder, Start Menu shortcut folder and usage records, all selected by default. The vendor removed the interpreter; Python Launcher remained a separate application and was tested separately.
What this test covered
Tested on 2026-09-26 with Python 3.12.10 (ARM64) installed through winget, per-user scope, the standard python.org installer rather than the newer Python Install Manager. Not verified: a machine-wide install, an active virtual environment at removal time, and pip's cache after real use.
The additional source run on 2026-10-03 used Python 3.13.15 ARM64, registered version 3.13.15150.0, user scope and the vendor WiX Burn uninstaller. It does not verify the released Mole package or active projects at removal time.
