Python 3.9

Python Software Foundation·Python.Python.3.9

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

winget install --id Python.Python.3.9 --exact --source winget

Latest 3.9.13·May 17, 2022

Release Notes

Core and Builtins

  • gh-92311: Fixed a bug where setting frame.f_lineno to jump over a list comprehension could misbehave or crash.
  • gh-92112: Fix crash triggered by an evil custom mro() on a metaclass.
  • gh-92036: Fix a crash in subinterpreters related to the garbage collector. When a subinterpreter is deleted, untrack all objects tracked by its GC. To prevent a crash in deallocator functions expecting objects to be tracked by the GC, leak a strong reference to these objects on purpose, so they are never deleted and their deallocator functions are not called. Patch by Victor Stinner.
  • gh-91421: Fix a potential integer overflow in _Py_DecodeUTF8Ex.
  • bpo-46775: Some Windows system error codes(>= 10000) are now mapped into the correct errno and may now raise a subclass of OSError. Patch by Dong-hee Na.
  • bpo-46962: Classes and functions that unconditionally declared their docstrings ignoring the --without-doc-strings compilation flag no longer do so. The classes affected are pickle.PickleBuffer, testcapi.RecursingInfinitelyError, and types.GenericAlias. The functions affected are 24 methods in ctypes. Patch by Oleg Iarygin.
  • bpo-36819: Fix crashes in built-in encoders with error handlers that return position less or equal than the starting position of non-encodable characters. Library
  • gh-91581: utcfromtimestamp() no longer attempts to resolve fold in the pure Python implementation, since the fold is never 1 in UTC. In addition to being slightly faster in the common case, this also prevents some errors when the timestamp is close to datetime.min. Patch by Paul Ganssle.
  • gh-92530: Fix an issue that occurred after interrupting threading.Condition.notify().
  • gh-92049: Forbid pickling constants re._constants.SUCCESS etc. Previously, pickling did not fail, but the result could not be unpickled.
  • bpo-47029: Always close the read end of the pipe used by multiprocessing.Queue after the last write of buffered data to the write end of the pipe to avoid BrokenPipeError at garbage collection and at multiprocessing.Queue.close() calls. Patch by Géry Ogam.
  • gh-91910: Add missing f prefix to f-strings in error messages from the multiprocessing and asyncio modules.
  • gh-91810: ElementTree method write() and function tostring() now use the text file’s encoding (“UTF-8” if not available) instead of locale encoding in XML declaration when encoding="unicode" is specified.
  • gh-91832: Add required attribute to argparse.Action repr output.
  • gh-91734: Fix OSS audio support on Solaris.
  • gh-91700: Compilation of regular expression containing a conditional expression (?(group)...) now raises an appropriate re.error if the group number refers to not defined group. Previously an internal RuntimeError was raised.
  • gh-91676: Fix unittest.IsolatedAsyncioTestCase to shutdown the per test event loop executor before returning from its run method so that a not yet stopped or garbage collected executor state does not persist beyond the test.
  • gh-90568: Parsing \N escapes of Unicode Named Character Sequences in a regular expression raises now re.error instead of TypeError.
  • gh-91595: Fix the comparison of character and integer inside Tools.gdb.libpython.write_repr(). Patch by Yu Liu.
  • gh-90622: Worker processes for concurrent.futures.ProcessPoolExecutor are no longer spawned on demand (a feature added in 3.9) when the multiprocessing context start method is "fork" as that can lead to deadlocks in the child processes due to a fork happening while threads are running.
  • gh-91575: Update case-insensitive matching in the re module to the latest Unicode version.
  • gh-91581: Remove an unhandled error case in the C implementation of calls to datetime.fromtimestamp with no time zone (i.e. getting a local time from an epoch timestamp). This should have no user-facing effect other than giving a possibly more accurate error message when called with timestamps that fall on 10000-01-01 in the local time. Patch by Paul Ganssle.
  • bpo-34480: Fix a bug where _markupbase raised an UnboundLocalError when an invalid keyword was found in marked section. Patch by Marek Suscak.
  • bpo-27929: Fix asyncio.loop.sock_connect() to only resolve names for socket.AF_INET or socket.AF_INET6 families. Resolution may not make sense for other families, like socket.AF_BLUETOOTH and socket.AF_UNIX.
  • bpo-43323: Fix errors in the email module if the charset itself contains undecodable/unencodable characters.
  • bpo-46787: Fix concurrent.futures.ProcessPoolExecutor exception memory leak
  • bpo-46415: Fix ipaddress.ip_{address,interface,network} raising TypeError instead of ValueError if given invalid tuple as address parameter.
  • bpo-44911: IsolatedAsyncioTestCase will no longer throw an exception while cancelling leaked tasks. Patch by Bar Harel.
  • bpo-44493: Add missing terminated NUL in sockaddr_un’s length This was potentially observable when using non-abstract AF_UNIX datagram sockets to processes written in another programming language.
  • bpo-42627: Fix incorrect parsing of Windows registry proxy settings
  • bpo-36073: Raise ProgrammingError instead of segfaulting on recursive usage of cursors in sqlite3 converters. Patch by Sergey Fedoseev. Documentation
  • gh-91888: Add a new gh role to the documentation to link to GitHub issues.
  • gh-91783: Document security issues concerning the use of the function shutil.unpack_archive()
  • gh-91547: Remove “Undocumented modules” page.
  • bpo-44347: Clarify the meaning of dirs_exist_ok, a kwarg of shutil.copytree().
  • bpo-38668: Update the introduction to documentation for os.path to remove warnings that became irrelevant after the implementations of PEP 383 and PEP 529.
  • bpo-47138: Pin Jinja to a version compatible with Sphinx version 2.4.4.
  • bpo-46962: All docstrings in code snippets are now wrapped into PyDoc_STR() to follow the guideline of PEP 7’s Documentation Strings paragraph. Patch by Oleg Iarygin.
  • bpo-26792: Improve the docstrings of runpy.run_module() and runpy.run_path(). Original patch by Andrew Brezovsky.
  • bpo-45790: Adjust inaccurate phrasing in Defining Extension Types: Tutorial about the ob_base field and the macros used to access its contents.
  • bpo-42340: Document that in some circumstances KeyboardInterrupt may cause the code to enter an inconsistent state. Provided a sample workaround to avoid it if needed.
  • bpo-41233: Link the errnos referenced in Doc/library/exceptions.rst to their respective section in Doc/library/errno.rst, and vice versa. Previously this was only done for EINTR and InterruptedError. Patch by Yan “yyyyyyyan” Orestes.
  • bpo-38056: Overhaul the Error Handlers documentation in codecs.
  • bpo-13553: Document tkinter.Tk args. Tests
  • gh-91607: Fix test_concurrent_futures to test the correct multiprocessing start method context in several cases where the test logic mixed this up.
  • bpo-47205: Skip test for sched_getaffinity() and sched_setaffinity() error case on FreeBSD.
  • bpo-29890: Add tests for ipaddress.IPv4Interface and ipaddress.IPv6Interface construction with tuple arguments. Original patch and tests by louisom. Build
  • bpo-47103: Windows PGInstrument builds now copy a required DLL into the output directory, making it easier to run the profile stage of a PGO build. Windows
  • bpo-47194: Update zlib to v1.2.12 to resolve CVE-2018-25032.
  • bpo-46785: Fix race condition between os.stat() and unlinking a file on Windows, by using errors codes returned by FindFirstFileW() when appropriate in win32_xstat_impl.
  • bpo-40859: Update Windows build to use xz-5.2.5 Tools/Demos
  • gh-91583: Fix regression in the code generated by Argument Clinic for functions with the defining_class parameter.

Installer type: burn

ArchitectureScopeDownloadSHA256
x86userDownloadF363935897BF32ADF6822BA15ED1BFED7AE2AE96477F0262650055B6E9637C35
x86machineDownloadF363935897BF32ADF6822BA15ED1BFED7AE2AE96477F0262650055B6E9637C35
x64userDownloadFB3D0466F3754752CA7FD839A09FFE53375FF2C981279FD4BC23A005458F7F5D
x64machineDownloadFB3D0466F3754752CA7FD839A09FFE53375FF2C981279FD4BC23A005458F7F5D

Details

Homepage
https://www.python.org/
License
PSF-2.0
Publisher
Python Software Foundation
Support
https://www.python.org/about/help/
Privacy Policy
https://www.python.org/privacy/
Copyright
Copyright (c) 2001-2022 Python Software Foundation. All Rights Reserved. Copyright (c) 2000 BeOpen.com. All Rights Reserved. Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved.
Moniker
python3.9

Tags

languageprogrammingprogramming-languagepythonpython3script

Older versions (8)

3.9.8
ArchitectureScopeDownloadSHA256
x86userDownloadF1D0337612389807379ED3BE7083B338744A7309B2EC3F6ED29E6ED1E7466CA9
x86machineDownloadF1D0337612389807379ED3BE7083B338744A7309B2EC3F6ED29E6ED1E7466CA9
x64userDownload1ED98B2B7B88CE7429520553F50C85C8A7BDC7F7CEE88BE642D9771F369EAB8C
x64machineDownload1ED98B2B7B88CE7429520553F50C85C8A7BDC7F7CEE88BE642D9771F369EAB8C
3.9.7
ArchitectureScopeDownloadSHA256
x64userDownload3F63F4C77A6DA13F9BAE715EB6644A48BD5F900601E0F1F233862E8CA1A96DD8
x64machineDownload3F63F4C77A6DA13F9BAE715EB6644A48BD5F900601E0F1F233862E8CA1A96DD8
x86userDownload993671F902962C2FDCB94B0995A1329E748BB0732FC476CBE9D26B01FE95AC8D
x86machineDownload993671F902962C2FDCB94B0995A1329E748BB0732FC476CBE9D26B01FE95AC8D
3.9.6
ArchitectureScopeDownloadSHA256
x64userDownload3924CAA094F70FD3EA667A27AD494D57941A487AA72D8B6B79CE60E81F1E497C
x64machineDownload3924CAA094F70FD3EA667A27AD494D57941A487AA72D8B6B79CE60E81F1E497C
x86userDownload506F8D88063191E9C579A4D6B4274B16E941D004CE33F99AB34EF4C5BE23E45B
x86machineDownload506F8D88063191E9C579A4D6B4274B16E941D004CE33F99AB34EF4C5BE23E45B
3.9.5
ArchitectureScopeDownloadSHA256
x64userDownload84D5243088BA00C11E51905C704DBE041040DFFF044F4E1CE5476844EE2E6EAC
x86userDownload505129081A839B699A6AB9064B441AD922EF03767B5DD4241FD0C2166BAF64DE
3.9.4
ArchitectureScopeDownloadSHA256
x64Download58E6BB9D08FD250C1DEFB7A7A7247993B4EA349518BA877ABB6364DE85029E04
x86Download9FA3C5BF4BECE52A424FD956276B0D71E5F0138767B93E9670322ACB54E8F41B
3.9.2
ArchitectureScopeDownloadSHA256
x64userDownloadBC95BCBB879006D2A3E5F8BEF6D7EC8B8E9368D4FE14E6CD4ABDF1CD5166BCC3
x86userDownloadACE8CD10AAC4E85BB4DA46045CA9210272E893C1E18B5A93083739C36BBA96B6
3.9.1
ArchitectureScopeDownloadSHA256
x64Download9DB77E7282945D3409ABC2A43142AE0F0B829F1656BED07BC18526E765F05F86
x86DownloadCE469E937B1293BAE7FBF81D0A3D43623C06C8C38DFC9F4A68C6B237CFD50A9F
3.9.0
ArchitectureScopeDownloadSHA256
x64DownloadFD2E2C6612D43BB6B213B72FC53F07D73D99059FA72C96E44BDE12E7815073AE
x86DownloadA4C65917F4225D1543959342F0615C813A4E9E7FF1137C4394FF6A5290AC1913