wingetpythontutorialsetupdeveloper

Setting Up a Python Development Environment with winget

From zero to a working Python 3.13 + uv + VS Code + Git setup on Windows in 10 minutes. The complete 2026 guide using winget.

· 4 min read · updated May 29, 2026
Setting Up a Python Development Environment with winget

You can have a fully-functional Python development setup on Windows in 10 minutes if you script it right. Here's the modern 2026 stack — Python 3.13, uv for environment management, VS Code, and the supporting tools.

TL;DR — full install

Open Terminal as Administrator:

winget install --id Python.Python.3.13 -e --accept-package-agreements --accept-source-agreements
winget install --id astral-sh.uv -e
winget install --id Microsoft.VisualStudioCode -e
winget install --id Git.Git -e
winget install --id Microsoft.WindowsTerminal -e
winget install --id Microsoft.PowerShell -e
winget install --id GitHub.cli -e

Wait 5 minutes. Done — restart Terminal, you're ready to code.

Step 1 — Install Python

winget install --id Python.Python.3.13 -e

This installs Python 3.13 (latest stable as of mid-2026) system-wide. Verify:

python --version
# Python 3.13.5

pip --version
# pip 24.0 from ...

If python isn't recognized in a new Terminal, the PATH update hasn't propagated. Close + reopen Terminal.

Pin the minor version

Optional but recommended — prevents winget from jumping to Python 3.14 mid-project:

winget pin add --id Python.Python.3.13 --version "3.13.*"

Now winget upgrade --all will only do patch upgrades within 3.13.x. See winget pin guide.

Step 2 — Install uv (replaces pip + poetry + pipenv)

winget install --id astral-sh.uv -e

uv is Astral's Rust-based Python package manager. It replaces pip, pip-tools, poetry, virtualenv, and pipenv in one binary. 10-100× faster than the alternatives.

Verify:

uv --version
# uv 0.4.0

Create a project

mkdir my-project
cd my-project
uv init

This creates pyproject.toml, .python-version, and a starter main.py. Then:

uv add httpx pandas matplotlib
uv run main.py

uv handles the venv invisibly. No need to source venv/bin/activate — uv knows.

Step 3 — Install VS Code

winget install --id Microsoft.VisualStudioCode -e

After install, launch VS Code and install the Python extension pack:

code --install-extension ms-python.python
code --install-extension ms-python.vscode-pylance
code --install-extension charliermarsh.ruff

(Ruff is Astral's blazing-fast linter + formatter — replaces black + flake8 + isort.)

Configure VS Code for Python

Open Ctrl+, (Settings) → Open JSON, add:

{
  "python.defaultInterpreterPath": "${workspaceFolder}/.venv/Scripts/python.exe",
  "python.analysis.typeCheckingMode": "basic",
  "editor.formatOnSave": true,
  "[python]": {
    "editor.defaultFormatter": "charliermarsh.ruff"
  }
}

Now VS Code auto-detects uv's .venv and formats with Ruff on save.

Step 4 — Install Git + GitHub CLI

winget install --id Git.Git -e
winget install --id GitHub.cli -e

After install:

git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global init.defaultBranch main

gh auth login

gh auth login walks you through GitHub authentication; pick HTTPS or SSH.

Step 5 — Set up Windows Terminal

winget install --id Microsoft.WindowsTerminal -e
winget install --id Microsoft.PowerShell -e

Open Windows Terminal Settings (Ctrl+,), set PowerShell 7 (pwsh.exe) as default. Old Windows PowerShell 5.1 is dead — modern Python tooling assumes PS7.

CLI ergonomics

winget install Starship.Starship -e
winget install BurntSushi.ripgrep.MSVC -e
winget install sharkdp.fd -e
winget install junegunn.fzf -e

Add to your PowerShell profile ($PROFILE):

Invoke-Expression (&starship init powershell)

See Best CLI tools for the full kit.

Data science extras

winget install Anaconda.Miniconda3 -e          # if you need conda
winget install Microsoft.AzureCLI -e            # for Azure
winget install Google.CloudSDK -e               # for GCP
winget install Amazon.AWSCLI -e                 # for AWS

A real example: data science project

mkdir analysis
cd analysis
uv init --python 3.13
uv add pandas numpy matplotlib jupyterlab seaborn scikit-learn

uv run jupyter lab

JupyterLab opens in your browser. Save and continue.

A real example: web API

mkdir api
cd api
uv init --python 3.13
uv add fastapi uvicorn httpx

# Create app.py with FastAPI hello world
@"
from fastapi import FastAPI
app = FastAPI()

@app.get('/')
def root():
    return { 'hello': 'world' }
"@ | Out-File -Encoding utf8 app.py

uv run uvicorn app:app --reload

Open http://localhost:8000.

Save your setup for future machines

After everything works:

winget export -o python-dev.json --include-versions

Save to OneDrive / GitHub Gist. On next machine:

winget import -i python-dev.json

Also commit your VS Code settings.json — see the fresh Windows 11 setup guide for a more thorough machine-config workflow.

Common pitfalls

"python" not found after install — close and reopen Terminal. PATH only refreshes for new processes.

Multiple Python versions on PATH — Windows ships its own Python redirector (python.exe). If you have both 3.12 and 3.13 installed, python --version may show the older one. Use py -3.13 to force the version, or remove the older with winget uninstall --id Python.Python.3.12.

uv not found — same PATH refresh issue. Or check where uv to see if it landed where expected.

VS Code can't find Python interpreterCtrl+Shift+P → "Python: Select Interpreter" → pick the .venv/Scripts/python.exe in your project.

More dev stacks
winget.tech has bundles for Developer, Node.js, ML/Data, and more — one-click install scripts.
Developer Bundle →

What's next?

Continue reading