Programming language Python: First version released to run natively on Apple M1

Python maintainers give a hand to data scientists who want to use Apple hardware with new Arm-based M1 chips.
Written by Liam Tung, Contributing Writer

Developers working on Core Python, the project behind programming language Python, have released the first version of the language that supports macOS Big Sur natively on Apple silicon. 

Besides performance, speed and battery improvements, Apple's Arm-based M1 MacBook Air, MacBook Pro 13-inch, and Mac mini present new questions for developers. 

The M1 chip computers have been getting rave reviews from developers who are impressed with the processor's performance. But is Apple silicon good for the data-science world?

SEE: Guide to Becoming a Digital Transformation Champion (TechRepublic Premium)

Python maintainers have released 3.9.1 Python, which is the first version to support macOS 11 Big Sur. As they note, Xcode 11 makes it possible to build Universal 2 binaries that work on Apple Silicon. 

The team has provided an installer it calls macos11.0 but points out that this variant should be considered "experimental". 

Python 3.9.1 is the first maintenance release of Python 3.9, which introduced a number of new features over version 3.8.

When Apple announced its non-Intel chip, it outlined plans to support both Intel and Apple silicon. Universal 2 will make updated apps automatically support both chipsets, while Rosetta 2 will allow apps that haven't been update to run in Apple silicon environments. 

Apple's switch to an Arm-based instruction set architecture has caused concern among users of Python since the company announced its plans.  

SEE: Meet the hackers who earn millions for saving the web, one bug at a time (cover story PDF) (TechRepublic)

"Apple announced yesterday that they will switch the CPU architecture for macOS over the next couple of years. While doing so, there will be once again binaries with multiple architectures (x86_64 and Arm64 this time)," wrote Core Python developer Ronald Oussoren.

"I'm wondering how to deal with this in the naming of wheels. In the past we've introduced custom machine names for these fat binaries (for example, 'universal' for 'i386 and ppc'), but that was before the introduction of explicit support for multiple compatibility tags in the packaging ecosystem."

According to Python Core developers including Oussoren, questions around using Python on Apple's high-performing M1 machines have been addressed, albeit with an experimental installer. 

"As of 3.9.1, Python now fully supports building and running on macOS 11.0 (Big Sur) and on Apple Silicon Macs (based on the Arm64 architecture)," they wrote.  

SEE: The algorithms are watching us, but who is watching the algorithms?

A new universal build variant, Universal 2, natively supports both Arm64 and Intel 64 in one set of executables, the Core Python developers said.  

"Binaries can also now be built on current versions of macOS to be deployed on a range of older macOS versions (tested to 10.9) while making some newer OS functions and options conditionally available based on the operating system version in use at runtime."

Editorial standards