Build native Windows on Arm applications with Python
Introduction
Platform-specificity of the Python packages
Build the application
Next Steps
Build native Windows on Arm applications with Python
Who is this for?
This is an introductory topic for developers who are interested in building Python applications on Arm.
What will you learn?
Upon completion of this Learning Path, you will be able to:
- Understand the platform-dependency of Python packages
- Leverage native Arm64 for Python applications
Prerequisites
Before starting, you will need the following:
- A Windows on Arm computer such as the Lenovo Thinkpad X13s running Windows 11 or a Windows on Arm virtual machine .
- Any code editor, we recommend using Visual Studio Code for Arm64 .
- Visual Studio 2022 with Arm build tools. Refer to this guide for the installation steps
Summary
This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
You’ll use platform-specific Python packages on Windows on Arm to build an Arm64-native application with NumPy. First, you’ll create a
sample.py script that generates noisy sine waves, computes fast Fourier transforms, and records timings for multiple input sizes. Then, you’ll run the script with Arm64 tooling and use the results to understand how package choice and input size affect performance.Frequently asked questions
These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
The program computes FFTs of synthesized sine waves with added noise for several input lengths and prints execution times. Use the printed timings to compare how runtime changes as the input size varies on the same device.
A complete version of the code is available on GitHub. Compare your
sample.py with that version if you see unexpected results.Confirm that you installed NumPy during setup. Also verify that you’re using the Windows on Arm environment and Arm64 tooling noted in the setup.
Modify the set of input lengths, the number of iterations, or the signal parameters used to synthesize the sine waves. Rerun the script and compare the new execution times.
Run
py -3.12-64 sample.py for x64 emulation, then run py -3.12-arm64 sample.py for Arm64. Run both commands from the directory containing sample.py and compare the execution times for the same signal lengths.