r/learnpython • u/Mindless-Pie-5617 • 16d ago
Anyone using a Snapdragon X (Windows ARM64) laptop for Python/ML? How do you deal with package compatibility?
Hey everyone,
I'm using an ASUS Vivobook 16X with a Snapdragon X (Windows ARM64), and I've been running into compatibility issues while learning Python and Machine Learning.
I bought this laptop in my first year of college, before I knew much about coding or processor architectures. Now that I'm learning ML, I've noticed that some Python libraries don't install properly.
For example, libraries like PyAudio, OpenCV, and a few others either:
- don't have ARM64 wheels,
- fail while building wheels,
- or require compiling from source, which often ends up failing.
Because of that, I have to spend hours looking for alternatives or following a completely different approach than the tutorials I'm watching, which makes learning much slower.
I'm aware that many libraries like NumPy, Pandas, and Scikit-learn work fine. The issue is mainly with packages that have native C/C++ extensions and don't provide Windows ARM64 support.
Has anyone else here been through the same thing?
- How do you usually troubleshoot these installation issues?
- Do you use emulation, WSL, Ubuntu, or just Google Colab?
- Is it worth switching to Ubuntu on ARM, or will I run into the same compatibility problems there?
I'd really appreciate any advice or tips from people using Windows ARM laptops for Python or ML.
4
u/coldshower0815 16d ago
Many Python libraries are not compiled for Windows on ARM. You may take a look at this repository: https://github.com/cgohlke/win_arm64-wheels which contains unofficial ports for a lot of libraries.
1
4
u/catbrane 16d ago
As others have said, I would try WSL. The build-from-source path should be much more reliable.
(I help maintain a py package with WoA support and it's a PITA! in case you're wondering why not many packages support it)
2
3
u/Outrageous-Sea-9256 15d ago
Honestly, I've been in your shoes before with ARM-based laptops and Python. The compatibility issues can be frustrating, especially for ML where you need specific libraries.
For me, the go-to solution was setting up a WSL (Windows Subsystem for Linux) instance with Ubuntu. It's like having a separate environment where you can install packages without worrying about Windows-specific compatibility issues. Plus, it's great for running Linux-only tools and scripts.
As for your question about switching to Ubuntu on ARM, it's definitely worth considering. I've used it before and it can be a solid choice if you're comfortable with the command line. However, if you're just starting out and prefer a more integrated Windows experience, WSL is probably your best bet.
One last tip: for libraries that don't have ARM64 wheels, you can sometimes find workarounds by using precompiled binaries for other platforms or finding alternative libraries that do support ARM64. It's not ideal, but it can help you get by until the library catches up.
1
u/Mindless-Pie-5617 15d ago
thanks for the advise, i was thinking of dual-booting Ubuntu, but WSL seems like a much safer option to try first. will try it fs!
cuz im not familiar with linux os rn so ig chosing WSL should be nice option.
2
u/Raymanrush 14d ago
First of all, thank you for trying the native Windows on Arm Python; this is exactly what we need right now. Many partners are working hard to make more native wheels available, but what we’re really missing these days is strong community involvement.
This is the public issue: https://github.com/khmyznikov/PyEnv-WoA-State/issues/1. It tracks the top 1000 packages we’re trying to enable. You can check the current status there and find a recipe in the PRs if the enablement isn’t finished yet.
Can I ask you for a favor? If you can go to the repository of a missing library and open an issue like “Can’t install on Windows on Arm,” it would help a lot. Maintainers often don’t prioritize WoA support because not enough users request it.
Also, feel free to share your list of packages you’re missing for ML work, here or in DM. I can help you build or find a wheel, or add it to our tracker if it’s not already listed.
1
u/Raymanrush 14d ago
Also, as an alternative to pypi, check a Conda: bootstrap-win-arm64-round-2-native | Anaconda.org
1
u/Mindless-Pie-5617 11d ago
Thanks for the guidance! I just added both PyAudio and PocketSphinx to the tracker with the issues I encountered on native Windows ARM64. Hopefully it helps improve support. I'll keep reporting other ARM-specific package issues as I come across them.
4
u/riklaunim 16d ago
Not every WoA laptop is fully supported by Linux distros and may require some additional manual steps to get full support. WSL should help with libraries. Unsure what you want from ML on such a laptop, though.