Python 3.12

Python 3.12 3.12.10

Python is a programming language that lets you work more quickly and integrate your systems more effectively.

  • By Python Software Foundation
  • PSF-2.0
  • Updated Apr 8, 2025
Download for Windows

About Python 3.12

Python is a programming language that lets you work more quickly and integrate your systems more effectively.

What's new in 3.12.10

macOS
- gh-124111: Update macOS installer to use Tcl/Tk 8.6.16.
- gh-131423: Update macOS installer to use OpenSSL 3.0.16. Patch by Bénédikt Tran.
- gh-131025: Update macOS installer to ship with SQLite 3.49.1.
- gh-91132: Update macOS installer to use ncurses 6.5.
Windows
- gh-131423: Update bundled version of OpenSSL to 3.0.16. The new build also disables uplink support, which may be relevant to embedders but has no impact on normal use.
- gh-131025: Update Windows installer to ship with SQLite 3.49.1.
- gh-131020: pylauncher correctly detects a BOM when searching for the shebang. Fix by Chris Eibl.
Tools/Demos
- gh-131852: msgfmt no longer adds the POT-Creation-Date to generated .mo files for consistency with GNU msgfmt.
- gh-85012: Correctly reset msgctxt when compiling messages in msgfmt.
Tests
- gh-131050: test_ssl.test_dh_params is skipped if the underlying TLS library does not support finite-field ephemeral Diffie-Hellman.
- gh-119727: Add --single-process command line option to Python test runner (regrtest). Patch by Victor Stinner.
Security
- gh-131809: Update bundled libexpat to 2.7.1
- gh-131261: Upgrade to libexpat 2.7.0
- gh-127371: Avoid unbounded buffering for tempfile.SpooledTemporaryFile.writelines(). Previously, disk spillover was only checked after the lines iterator had been exhausted. This is now done after each line is written.
- gh-121284: Fix bug in the folding of rfc2047 encoded-words when flattening an email message using a modern email policy. Previously when an encoded-word was too long for a line, it would be decoded, split across lines, and re-encoded. But commas and other special characters in the original text could be left unencoded and unquoted. This could theoretically be used to spoof header lines using a carefully constructed encoded-word if the resulting rendered email was transmitted or re-parsed.
Library
- gh-116608: undeprecate functional API for importlib.resources
- gh-132075: Fix possible use of socket address structures with uninitialized members. Now all structure members are initialized with zeroes by default.
- gh-132002: Fix crash when deallocating contextvars.ContextVar with weird unahashable string names.
- gh-131668: socket: Fix code parsing AF_BLUETOOTH socket addresses.
- gh-131492: Fix a resource leak when constructing a gzip.GzipFile with a filename fails, for example when passing an invalid compresslevel. …

Full release notes »

Technical details

PublisherPython Software Foundation
Version3.12.10
Release date2025-04-08
LicensePSF-2.0
Installer typeburn
Architecturex86, x64, arm64
Package IDPython.Python.3.12

Install Python 3.12 from the command line

Install with Windows Package Manager
winget install --id=Python.Python.3.12 -e
Update to the latest version
winget upgrade --id=Python.Python.3.12 -e
Uninstall
winget uninstall --id=Python.Python.3.12 -e
Silent install with the offline installer
"python-3.12.10-amd64.exe" /quiet /norestart

languageprogrammingprogramming-languagepythonpython3script

Python 3.12 version history

  • 3.12.9
  • 3.12.8
  • 3.12.7
  • 3.12.6
  • 3.12.5
  • 3.12.4
  • 3.12.3
  • 3.12.2
  • 3.12.1

Frequently asked questions

Is Python 3.12 free?

Python 3.12 is psf-2.0 software from Python Software Foundation. Check the publisher's license terms for pricing and usage rights.

What is the latest version of Python 3.12?

The latest version is 3.12.10, released on Apr 8, 2025.

Is it safe to download Python 3.12?

The download button links to the official installer published on python.org, the same file Windows Package Manager installs. You can verify the downloaded file by comparing its SHA-256 checksum with 67b5635e80ea51072b87941312d00ec8927c4db9ba18938f7ad2d27b328b95fb.

Which Windows versions does Python 3.12 support?

Python 3.12 runs on Windows and is available for 32-bit (x86), 64-bit (x64), ARM64 systems.

How do I install Python 3.12 silently?

Run the offline installer with "python-3.12.10-amd64.exe" /quiet /norestart, or install it with Windows Package Manager: winget install --id=Python.Python.3.12 -e --silent.

How do I uninstall Python 3.12?

Open Settings › Apps › Installed apps, find Python 3.12 and select Uninstall. From the command line, run winget uninstall --id=Python.Python.3.12 -e.