Notice: This page displays a fallback because interactive scripts did not run. Possible causes include disabled JavaScript or failure to load scripts or stylesheets.

Python 3.9.7

Warning: Python 3.9.7 reached end-of-life on 2025-10-31. It is no longer supported and does not receive security updates. We recommend upgrading to the latest Python release.
Note: Python 3.9.7 has been superseded by Python 3.9.25.

Release date: Aug. 30, 2021

This is the seventh maintenance release of Python 3.9

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

There's been 187 commits since 3.9.6 which is a similar amount compared to 3.8 at the same stage of the release cycle. See the changelog for details.

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

(BBC Television News studio)
Richard Baker: We've just heard that an explosion in the kitchens of the House of Lords has resulted in the breakage of seventeen storage jars. Police ruled out foul play.

Full Changelog

Files

Version Operating system Description File size GPG MD5 checksum
Gzipped source tarball Source release 24.6 MB SIG 5f463f30b1fdcb545f156583630318b3
XZ compressed source tarball Source release 18.2 MB SIG fddb060b483bc01850a3f412eea1d954
macOS 64-bit Intel installer macOS for macOS 10.9 and later 28.6 MB SIG ce8c2f885f26b09536857610644260d4
macOS 64-bit universal2 installer macOS for macOS 10.9 and later, including macOS 11 Big Sur on Apple Silicon (experimental) 36.4 MB SIG 825067610b16b03ec814630df1b65193
Windows installer (64-bit) Windows Recommended 27.6 MB SIG cc3eabc1f9d6c703d1d2a4e7c041bc1d
Windows installer (32-bit) Windows 26.5 MB SIG 0d949bdfdbd0c8c66107a980a95efd85
Windows help file Windows 8.8 MB SIG b92a78506ccf258d5ad0d98c341fc5d1
Windows embeddable package (64-bit) Windows 8.1 MB SIG 67e19ff32b3ef62a40bccd50e33b0f53
Windows embeddable package (32-bit) Windows 7.3 MB SIG 6d12e3e0f942830de8466a83d30a45fb