Python 3.9.1

    Release Date: Dec. 7, 2020

    This is the first maintenance release of Python 3.9

    Note: The release you're looking at is Python 3.9.1, abugfix 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 282 changes since 3.9.0 which is a significant amount. To compare, 3.8.1 only saw 192 commits since 3.8.0.

    Installer news

    3.9.1 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 themacos11.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 ofpip, please consider themacos11.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 indict
    • 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 usingPEP 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 byPEP 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 byPEP 384.

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

    More resources

    And now for something completely different

    Arthur (Eric Idle): Good morning, I'd like to buy a book please.
    Bookseller (John Cleese): Oh, well I'm afraid we don't have any.(trying to hide them)
    Arthur: I'm sorry?
    Bookseller: We don't have any books. We're fresh out of them. Good morning.
    Arthur: What are all these?
    Bookseller: All what? Oh! All these, ah ah ha ha. You're referring to these... books.
    Arthur: Yes.
    Bookseller: They're um... they're all sold. Good morning.
    Arthur: What all of them?
    Bookseller: Every single man-Jack of them. Not a single one of them in an unsold state. Good morning.
    Arthur: Wait a minute,there's something going on here.
    Bookseller: What, where? You didn'tsee anything did you?
    Arthur: No, but I think there's something going on here.
    Bookseller: No no, well there's nothing going on here at all(shouts off) and he didn't see anything. Good morning.
    Arthur: Oh, well, I'd like to buy a copy of an 'Illustrated History of False Teeth'.
    Bookseller: My God you've got guts.
    Arthur: What?
    Bookseller:(pulling gun) Just how much do you know?
    Arthur: What about?
    Bookseller: Are you from the British Dental Association?
    Arthur: No I'm a tobacconist.
    Bookseller: Stay where you are. You'll never leave this bookshop alive.
    Arthur: Why not?
    Bookseller: You know too much, my dental friend.
    Arthur: I don't knowanything.
    Bookseller: Come clean. You're a dentist aren't you.
    Arthur: No, I'm a tobacconist.
    Bookseller: A tobacconist who just happens to be buying a book onteeth?

    Full Changelog

    Files

    VersionOperating SystemDescriptionMD5 SumFile SizeGPG
    Gzipped source tarballSource release429ae95d24227f8fa1560684fad6fca724.2 MBSIG
    XZ compressed source tarballSource release61981498e75ac8f00adcb908281fadb618.0 MBSIG
    macOS 64-bit Intel installermacOSfor macOS 10.9 and later74f5cc5b5783ce8fb2ca55f11f3f069928.4 MBSIG
    macOS 64-bit universal2 installermacOSfor macOS 10.9 and later, including macOS 11 Big Sur on Apple Silicon (experimental)8b19748473609241e60aa3618bbaf3ed35.7 MBSIG
    Windows installer (64-bit)WindowsRecommendedb3fce2ed8bc315ad2bc49eae48a9448726.9 MBSIG
    Windows installer (32-bit)Windowsdde210ea04a31c27488605a9e7cd297a25.9 MBSIG
    Windows help fileWindowsc49d9b6ef88c0831ed0e2d39bc42b3168.4 MBSIG
    Windows embeddable package (64-bit)Windowse70e5c22432d8f57a497cde5ec2e5ce28.0 MBSIG
    Windows embeddable package (32-bit)Windows96c6fa81fe8b650e68c3dd41258ae3177.2 MBSIG