# Python for Windows on Arm

## About this Install Guide

| Reading time: | 15 min |
|----------------|--------|
| Last updated:  | 22 Jun 2026 |
| Ecosystem dashboard: | [View](https://developer.arm.com/ecosystem-dashboard/windows?package=python) |

This guide shows you how to install and use the tool with the most common configuration. For advanced options and complete reference information, see the official documentation. Some install guides also include optional next steps to help you explore related workflows or integrations.

Python has native support for [Windows on Arm](https://learn.microsoft.com/en-us/windows/arm/overview). Starting with version 3.11, an official installer is available.

You can find a number of developer-ready Windows on Arm [devices](/learning-paths/laptops-and-desktops/intro/find-hardware/).

Windows on Arm instances are available with Microsoft Azure. For more information, see [Deploy a Windows on Arm virtual machine on Microsoft Azure](/learning-paths/cross-platform/woa_azure/).

## Download and install Python for Windows on Arm

To download and install Python for Windows on Arm, there is more than one option:

- You can download the installer from the [Python website](https://www.python.org/downloads/windows/). Locate the `ARM64` installer.
- You can download from a PowerShell terminal, by running the following:

  ```bash
  curl https://www.python.org/ftp/python/3.13.0/python-3.13.0-arm64.exe --output python-3.13.0-arm64.exe
  ```

After you have downloaded Python, run the installer `exe` file on a Windows on Arm machine.

The installer will start.

Tick the checkbox **Add python.exe to PATH** to allow you to easily invoke Python from any directory.

![Screenshot of the Python ARM64 installer on Windows on Arm with the Add python.exe to PATH checkbox selected so Python can run from any terminal directory.](https://learn.arm.com/install-guides/_images/py1-woa.png)

When the installation completes, you’ll see a window with the message **Setup was successful**.

![Screenshot of the Python installer completion screen showing Setup was successful, confirming the ARM64 installation finished correctly.](https://learn.arm.com/install-guides/_images/py2-woa.png)

## Start Python on Windows

To start Python on Windows, at a Windows Command prompt or a PowerShell prompt, use `python` or `py` to start the interpreter:

```bash
py
```

The interpreter starts with an output similar to:

```
Python 3.13.0 (tags/v3.13.0:60403a5, Oct  7 2024, 10:17:29) [MSC v.1941 64 bit (ARM64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
```

Enter `exit()` to leave the interpreter:

```python
exit()
```

## Verify installation by running a Python example

To confirm that Python is working, you can run a Python example. Use a text editor to save the following code to a file named `uname.py`:

```python
import platform
print("Python version", platform.python_version())
print("Machine is", platform.uname().system, platform.uname().release, platform.uname().version, platform.uname().machine)
```

Run the code:

```bash
py uname.py
```

The output is similar to:

```
Python version 3.13.0
Machine is Windows 11 ARM64
```

## Install Python packages

To install Python packages, you can use Python `pip`.

For example, to install [Flask](https://palletsprojects.com/p/flask/):

```bash
pip install Flask
```

Use a text editor to save the following code as `hello.py`:

```python
import platform
from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "<h1><b>Hello from %s %s %s %s</b></h1>" % (platform.system(), platform.release(), platform.version(), platform.machine())

if __name__ == "__main__":
    app.run(host="0.0.0.0")
```

Run the application:

```bash
python hello.py
```

The output is similar to:

```
* Serving Flask app 'hello'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:5000
 * Running on http://10.8.0.10:5000
Press CTRL+C to quit
```

Using the URL that the application prints, open a browser. The following is an example URL:

```
http://127.0.0.1:5000
```

The output is displayed in the browser window.

![Browser screenshot showing the Flask hello page with Windows and ARM64 platform details, verifying your Python web app runs on Windows on Arm.](https://learn.arm.com/install-guides/_images/flask-woa.png)

The accesses are reported in the command window:

```
127.0.0.1 - - [<timestamp>] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [<timestamp>] "GET /favicon.ico HTTP/1.1" 404 -
10.8.0.10 - - [<timestamp>] "GET / HTTP/1.1" 200 -
10.8.0.10 - - [<timestamp>] "GET /favicon.ico HTTP/1.1" 404 -
```

Use **Ctrl + C** to stop the application.

## Find Python IDLE

Python `IDLE` is included in the installation. IDLE is a simple IDE for Python development. You can locate it in the start menu.

You can create and run Python applications in this environment.

For example, use **File**, then **Open…** (or **Ctrl + O**) to open `uname.py`.

Then select **Run** and **Run module** (or **F5**) to execute.

![Screenshot of Python IDLE running uname.py and displaying Windows 11 ARM64 output, confirming script execution in the IDLE environment.](https://learn.arm.com/install-guides/_images/py3-woa.png)

You are now ready to use Python on your Windows on Arm device.
