Post

Python Setup on Windows (using scoop)

Complete Python Setup on Windows using scoop.

Python Setup on Windows (using scoop)

Introduction

Dealing with different versions of Python and tools might be trickier on Windows than Linux due to the way packages work on Windows.

This post describes an easy way similar to Linux or MacOS to manage Python and Python Versions using scoop.

Requirements

Install scoop.

1
2
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression

Install Python

You can easily install the latest stable python release by running

1
scoop install main/python

Install Python Version

If you would like to install different python versions, is really easy to deal with it using scoop

Install the versions you required, for example from the following list

1
2
3
4
5
6
7
8
scoop install versions/python27
scoop install versions/python35
scoop install versions/python37
scoop install versions/python38
scoop install versions/python39
scoop install versions/python310
scoop install versions/python311
scoop install versions/python312

To have them available on your path then just use scoop for it

1
2
3
4
5
6
7
scoop reset python35
python --version
# Python 3.5

scoop reset python 39
python --version
# Python 3.9.13

Extra tools

Pipx - Package manager

pipx — Install and Run Python Applications in Isolated Environments. Similar to scoop, brew or apt is a package manager but for Python apps.

Install pipx with scoop by running

1
scoop install main/pipx

Then you can install with pipx applications that are written in python. For example, pre-commit

1
pipx insall pre-commit

Combining pipx with scoop is fine, but you might end up having issues with pipx underlying python version when updating it via scoop.

It is recommended to hold pipx and upgrade only when necessary:

1
scoop hold pipx

Poetry

Poetry is a tool that serves as an alternative to the standards build-tools and pip.

It helps you manage python versions, environments, dependencies in a fluent and easy way.

Install it by running

1
scoop install main/poetry

ruff

ruff is the fastest linter and code formatter. It is usually not necessary to be installed as should run as part of your dev workflow, for example using git hooks.

If you prefer to run it manually, you can also install it

1
scoop install main/ruff

Then you can run

1
2
ruff check   # Lint all files in the current directory.
ruff format  # Format all files in the current directory.

uv and uvx

Prefer uvx (uv tool) over pipx

uv is an extremely fast Python package and project manager, written in Rust.

1
scoop install main/uv

Although it can be used for the same purpose of poetry, also it comes with uvx which serves the same purpose as pipx but faster.

For example, to run a hello world

1
uvx pycowsay 'hello world!'

VSCode editor

It is highly recommended to use vscode for your dev environment.

In order to have a good setup, you will need to install the following extensions:

This post is licensed under CC BY 4.0 by the author.