Notice: While JavaScript is not essential for this website, your interaction with the content will be limited. Please turn JavaScript on for the full experience.

Python 3.9.1rc1

Release Date: Nov. 26, 2020

This is the release candidate of the first maintenance release of Python 3.9

Note: The release you're looking at is Python 3.9.1rc1, the release candidate of a bugfix release for the legacy 3.9 series. Python 3.11 is now the latest feature release series of Python 3. Get the latest release of 3.11.x here.

We've made 240 changes since 3.9.0 which is a significant amount. To compare, 3.8.1rc1 only saw 168 commits since 3.8.0.

Installer news

3.9.1rc1 is the first version of Python to support macOS 11 Big Sur. With Xcode 11 and later it is now possible to build “Universal 2” binaries which work on Apple Silicon. We are providing such an installer as the macosx11.0 variant. This installer can be deployed back to older versions, tested down to OS X 10.9. As we are waiting for an updated version of pip, please consider the macosx11.0 installer experimental.

This work would not have been possible without the effort of Ronald Oussoren, Ned Deily, and Lawrence D’Anna from Apple. Thank you!

This is the first version of Python to default to the 64-bit installer on Windows. The installer now also actively disallows installation on Windows 7. Python 3.9 is incompatible with this unsupported version of Windows.

Major new features of the 3.9 series, compared to 3.8

Some of the new major new features and changes in Python 3.9 are:

  • PEP 573, Module State Access from C Extension Methods
  • PEP 584, Union Operators in dict
  • PEP 585, Type Hinting Generics In Standard Collections
  • PEP 593, Flexible function and variable annotations
  • PEP 602, Python adopts a stable annual release cadence
  • PEP 614, Relaxing Grammar Restrictions On Decorators
  • PEP 615, Support for the IANA Time Zone Database in the Standard Library
  • PEP 616, String methods to remove prefixes and suffixes
  • PEP 617, New PEG parser for CPython
  • BPO 38379, garbage collection does not block on resurrected objects;
  • BPO 38692, os.pidfd_open added that allows process management without races and signals;
  • BPO 39926, Unicode support updated to version 13.0.0;
  • BPO 1635741, when Python is initialized multiple times in the same process, it does not leak memory anymore;
  • A number of Python builtins (range, tuple, set, frozenset, list, dict) are now sped up using PEP 590 vectorcall;
  • A number of Python modules (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref) now use multiphase initialization as defined by PEP 489;
  • A number of standard library modules (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) are now using the stable ABI defined by PEP 384.

You can find a more comprehensive list in this release's "What's New" document.

More resources

And now for something completely different

Loothesom: (Eric Idle) Here at Lughtborrow are the five young men chosen last week to be eaten by a crocodile for Britain this summer. Obviously, the most important part of the event is the opening 60 yard sprint towards the crocs. And twenty-two year old Nottingham schoolteacher Gavin Watterlow is rated by some pundits not only the fastest but also the tastiest British morsel since Barry Gordon got a bronze at Helsinki. In charge of the team is Sergeant Major Harold Duke.
Duke: (Terry Jones) Aww, well, you not only got to get in that pit first, you gotta get EATEN first. When you land in front of your croc, and 'e opens his mouth, I wanna see you right in there. Rub your 'ead up against 'is taste buds. And when those teeth bite into your flesh, use the purchase to thrust yourself DOWN his throat...
Loothesom: Duke's trained every British team since 1928, and it's his blend of gymnastic knowhow, reptilian expertise and culinary skill that's turned many an un-appetizing novice into a crocodilic banquet.
Duke: Well, our chefs have been experimenting for many years to find a sauce most likely to tempt the crocodile. In the past, we've concentrated on a fish based sauce, but this year, we are reverting to a simple bernaise.

Full Changelog


Version Operating System Description MD5 Sum File Size GPG
Gzipped source tarball Source release 44eaec341c4224e08007336987e4c0dd 24.2 MB SIG
XZ compressed source tarball Source release bb5950be70e8271d09a120158e7e425d 18.0 MB SIG
macOS 64-bit installer macOS for OS X 10.9 and later 8ed47729007ff3cf59e1f6c90c50a714 28.4 MB SIG
macOS 64-bit universal2 installer macOS for OS X 10.9 and later, including macOS 11 Big Sur on Apple Silicon (experimental) 3ee2730afd97ebbddb6b3dc9ac619f3d 35.7 MB SIG
Windows installer (64-bit) Windows Recommended 7444c283d8a94823beb52611c091a398 26.9 MB SIG
Windows installer (32-bit) Windows db66fab666fe331eae12949364b72350 25.9 MB SIG
Windows help file Windows 4e7db25c3cfdbd223824224b5aa6e700 8.4 MB SIG
Windows embeddable package (64-bit) Windows 43007f492788cc118093f7f178099912 8.0 MB SIG
Windows embeddable package (32-bit) Windows 798b3f9a6f04664dc5db8251a6fb18c2 7.2 MB SIG