This is an older version. The current version is 3.8.10. Python 3.8 3.8.10 · Released:
3.8.0 is part of the 3.8 line, which reached its end of life on October 7, 2024. It no longer receives security fixes. endoflife.date
Installer files 3.8.0
| Architecture | Type | Scope | File size | Download | SHA256 |
|---|---|---|---|---|---|
| 64-bit | EXE (WiX Burn) | Current user | 27.5 MB | python.org | VirusTotal |
| 64-bit | EXE (WiX Burn) | All users | 27.5 MB | python.org | VirusTotal |
| 32-bit | EXE (WiX Burn) | Current user | 26.4 MB | python.org | VirusTotal |
| 32-bit | EXE (WiX Burn) | All users | 26.4 MB | python.org | VirusTotal |
Link and SHA256 come from the Windows Package Manager community manifest. Compare the hash of the downloaded file before running it.
Release notes
Core and Builtins
- bpo-38469: Fixed a bug where the scope of named expressions was not being resolved correctly in the presence of the global keyword. Patch by Pablo Galindo.
- bpo-38379: When cyclic garbage collection (gc) runs finalizers that resurrect unreachable objects, the current gc run ends, without collecting any cyclic trash. However, the statistics reported by collect() and get_stats() claimed that all cyclic trash found was collected, and that the resurrected objects were collected. Changed the stats to report that none were collected.
Library
- bpo-38449: Revert GH-15522, which introduces a regression in mimetypes.guess_type() due to improper handling of filenames as urls.
- bpo-38431: Fix __repr__ method for dataclasses.InitVar to support typing objects, patch by Samuel Colvin.
- bpo-38109: Add missing stat.S_IFDOOR, stat.S_IFPORT, stat.S_IFWHT, stat.S_ISDOOR(), stat.S_ISPORT(), and stat.S_ISWHT() values to the Python implementation of stat.
- bpo-38405: Nested subclasses of typing.NamedTuple are now pickleable.
- bpo-38332: Prevent KeyError thrown by _encoded_words.decode() when given an encoded-word with invalid content-type encoding from propagating all the way to email.message.get().
- bpo-38341: Add smtplib.SMTPNotSupportedError to the smtplib exported names.
- bpo-13153: OS native encoding is now used for converting between Python strings and Tcl objects. This allows to display, copy and paste to clipboard emoji and other non-BMP characters. Converting strings from Tcl to Python and back now never fails (except MemoryError).
Documentation
- bpo-38294: Add list of no-longer-escaped chars to re.escape documentation
Tests
- bpo-37531: On timeout, regrtest no longer attempts to call popen.communicate() again: it can hang until all child processes using stdout and stderr pipes completes. Kill the worker process and ignores its output. Change also the faulthandler timeout of the main process from 1 minute to 5 minutes, for Python slowest buildbots.
Windows
- bpo-38344: Fix error message in activate.bat
- bpo-38359: Ensures pyw.exe launcher reads correct registry key.
- bpo-38355: Fixes ntpath.realpath failing on sys.executable.
IDLE
- bpo-36698: IDLE no longer fails when write non-encodable characters to stderr. It now escapes them with a backslash, as the regular Python interpreter. Added the errors field to the standard streams.
Tools/Demos
- bpo-38118: Update Valgrind suppression file to ignore a false alarm in PyUnicode_Decode() when using GCC builtin strcmp().
- bpo-38347: pathfix.py: Assume all files that end on ‘.py’ are Python scripts when working recursively.
C API
- bpo-38395: Fix a crash in weakref.proxy objects due to incorrect lifetime management when calling some associated methods that may delete the last reference to object being referenced by the proxy. Patch by Pablo Galindo.https://docs.python.org/release/3.8.0/whatsnew/changelog.html