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.10

Release Date: Jan. 14, 2022

This is the ninth maintenance release of Python 3.9

Note: The release you're looking at is Python 3.9.10, 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.

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

(Old lady on the phone.)
Mrs. Little: Hello, is that the fire brigade?
(Cut to the fire station.)
First Fireman: No, sorry, wrong number.
(He puts the phone back. He's among four other firemen in full gear, surrounded by fire-fighting equipment and a gleaming fire engine. The firemen are engaged in a variety of homely pursuits: one is soldering a crystal set, another is cooking at a workbench, another is doing embroidery, another is at a sewing machine.)
Second Fireman: That phone's not stopped ringing all day.
Third Fireman: What happens when you've mixed the batter, do you dice the ham with the coriander?
First Fireman: No, no, you put them in separately when the vine leaves are ready.
(The phone rings.)
Second Fireman: Oh, no, not again.

Full Changelog


Version Operating System Description MD5 Sum File Size GPG
Gzipped source tarball Source release 1440acb71471e2394befdb30b1a958d1 24.6 MB SIG
XZ compressed source tarball Source release e754c4b2276750fd5b4785a1b443683a 18.3 MB SIG
macOS 64-bit Intel-only installer macOS for macOS 10.9 and later, deprecated 2714cb9e6241cf7e2f9022714a55d27a 29.0 MB SIG
macOS 64-bit universal2 installer macOS for macOS 10.9 and later c2393ab11a423d817501b8566ab5da9f 36.4 MB SIG
Windows installer (64-bit) Windows Recommended 747ac35ae667f4ec1ee3b001e9b7dbc6 27.6 MB SIG
Windows installer (32-bit) Windows 457d648dc8a71b6bc32da30a7805c55b 26.5 MB SIG
Windows help file Windows 784020441c1a25289483d3d8771a8215 8.9 MB SIG
Windows embeddable package (64-bit) Windows b8e8bfba8e56edcd654d15e3bdc2e29a 8.1 MB SIG
Windows embeddable package (32-bit) Windows c1d2af96d9f3564f57f35cfc3c1006eb 7.3 MB SIG