# Notes for Windows users

:::{warning}
If you are not using Windows, you can skip this page and proceed directly to
[the next topic](./notes-macos.md).
:::

## Windows and scientific Python

Windows has historically been challenging for scientific programming, but this has
improved dramatically in recent years. Setting up a productive Python environment on
Windows is now straightforward, though it requires following a few important steps.

## Essential requirements

Before starting the installation process, please ensure:

- **Use Windows 11**: Windows 10 reached end-of-life in October 2025 and no longer
  receives security updates. Check your Windows version before the training (Windows key
  \+ R, type `winver`, press Enter).

- **Use Windows Terminal with PowerShell**: Avoid the outdated "Command Prompt". Windows
  Terminal provides a modern interface and is the standard for Windows development.
  Search for "PowerShell" in the Windows menu to launch it.

- **Have installation permissions**: You need administrator rights (or support from your
  IT administrator) to install the software required for this training. If you encounter
  permission issues, contact your administrator and share the relevant installation pages
  with them. More generally, if you encounter issues when running installation commands
  given in this guide, contact your IT administrator.

- **Can activate Python environments**: In PowerShell, you must be able to execute
  activation scripts. We'll verify this in [](./check.md).

## Optional: Ubuntu with {abbr}`WSL (Windows Subsystem for Linux)` (for advanced users)

::::{admonition} Windows Subsystem for Linux (WSL)
:class: dropdown

**This is optional for the training** but can be valuable for advanced workflows,
especially if you plan to work with high-performance computing or compile complex
scientific software.

WSL provides a full Linux environment within Windows, allowing you to use Linux tools and
workflows while staying in Windows. This is particularly useful for:

- Compiling software as you would on Linux clusters or supercomputers
- Running parallel programs using MPI
- Using Linux-specific scientific tools

### Installation

Follow the
[official WSL installation guide](https://learn.microsoft.com/en-us/windows/wsl/install):

1. Open PowerShell as administrator (right-click → "Run as administrator")
2. Run: `wsl --install`
3. Restart your computer
4. After restart, install Ubuntu: `wsl.exe --install Ubuntu`

### After installation

A fresh WSL installation provides a minimal Linux system. You'll need to install
additional tools following the Linux setup instructions in [](./notes-linux.md).

:::{important}
If you install WSL, you'll set up Python on **both** Windows and Ubuntu-WSL. This
provides flexibility but requires following setup instructions for both platforms.
:::
::::

## Additional options (advanced users only)

::::{admonition} Advanced configuration
:class: dropdown

These are not required for the training:

- **Developer Mode**:
  [Enabling Developer Mode](https://learn.microsoft.com/en-us/windows/advanced-settings/developer-mode)
  provides additional features for software development, such as installing apps from any
  source and using advanced developer tools.

- **Microsoft Build Tools**: Only needed if you want to compile native code (C/C++
  extensions) directly on Windows. Most Python packages provide pre-built binaries, so
  this is rarely necessary.
::::
