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.12.0rc1

Release Date: Aug. 6, 2023

This is the first release candidate of Python 3.12.0

This release, 3.12.0rc1, is the penultimate release preview. Entering the release candidate phase, only reviewed code changes which are clear bug fixes are allowed between this release candidate and the final release. The second candidate (and the last planned release preview) is scheduled for Monday, 2023-09-04, while the official release of 3.12.0 is scheduled for Monday, 2023-10-02.

There will be no ABI changes from this point forward in the 3.12 series, and the goal is that there will be as few code changes as possible.

Call to action

We strongly encourage maintainers of third-party Python projects to prepare their projects for 3.12 compatibilities during this phase, and where necessary publish Python 3.12 wheels on PyPI to be ready for the final release of 3.12.0. Any binary wheels built against Python 3.12.0rc1 will work with future versions of Python 3.12. As always, report any issues to the Python bug tracker.

Please keep in mind that this is a preview release and while it's as close to the final release as we can get it, its use is not recommended for production environments.

Core developers: time to work on documentation now

  • Are all your changes properly documented?
  • Are they mentioned in What's New?
  • Did you notice other changes you know of to have insufficient documentation?

Major new features of the 3.12 series, compared to 3.11

New features

Type annotations


  • The deprecated wstr and wstr_length members of the C implementation of unicode objects were removed, per PEP 623.
  • In the unittest module, a number of long deprecated methods and classes were removed. (They had been deprecated since Python 3.1 or 3.2).
  • The deprecated smtpd and distutils modules have been removed (see PEP 594 and PEP 632. The setuptools package continues to provide the distutils module.
  • A number of other old, broken and deprecated functions, classes and methods have been removed.
  • Invalid backslash escape sequences in strings now warn with SyntaxWarning instead of DeprecationWarning, making them more visible. (They will become syntax errors in the future.)
  • The internal representation of integers has changed in preparation for performance enhancements. (This should not affect most users as it is an internal detail, but it may cause problems for Cython-generated code.)

(Hey, fellow core developer, if a feature you find important is missing from this list, let Thomas know.)

For more details on the changes to Python 3.12, see What's new in Python 3.12. The next pre-release of Python 3.12 will be 3.12.0rc2, the final release candidate, currently scheduled for 2023-09-04.

More resources


Version Operating System Description MD5 Sum File Size GPG Sigstore
Gzipped source tarball Source release f167ea3ce8036eb4feb1dc5aee82b293 25.7 MB SIG .sigstore
XZ compressed source tarball Source release 6085d285160b2c94e1239d0afd42fdc8 19.3 MB SIG .sigstore
macOS 64-bit universal2 installer macOS for macOS 10.9 and later 0558badcc5c0e23929b7936111695e2e 42.9 MB SIG .sigstore
Windows installer (64-bit) Windows Recommended 5538f4a81bc42cc69ad20ee56d585d55 25.0 MB SIG .sigstore
Windows installer (ARM64) Windows Experimental a6af3b5b61b0a2a314fe64f1a46619dc 24.1 MB SIG .sigstore
Windows embeddable package (64-bit) Windows 170f06277ed89a34454b81255a1e6ca4 10.5 MB SIG .sigstore
Windows embeddable package (32-bit) Windows c3113eef1a7b9ddae881c7c570f72dd1 9.4 MB SIG .sigstore
Windows embeddable package (ARM64) Windows 076fe8502da766cf0e8887129d6c25cf 9.6 MB SIG .sigstore
Windows installer (32 -bit) Windows 5733deefef4eee00cb205867bc7c9891 23.7 MB SIG .sigstore