About Python 3.8
Python is a programming language that lets you work more quickly and integrate your systems more effectively.
Python is a programming language that lets you work more quickly and integrate your systems more effectively.
Python is a programming language that lets you work more quickly and integrate your systems more effectively.
Security
- bpo-43434: Creating a sqlite3.Connection object now also produces a sqlite3.connect auditing event. Previously this event was only produced by sqlite3.connect() calls. Patch by Erlend E. Aasland.
- bpo-43472: Ensures interpreter-level audit hooks receive the cpython.PyInterpreterState_New event when called through the _xxsubinterpreters module.
- bpo-43075: Fix Regular Expression Denial of Service (ReDoS) vulnerability in urllib.request.AbstractBasicAuthHandler. The ReDoS-vulnerable regex has quadratic worst-case complexity and it allows cause a denial of service when identifying crafted invalid RFCs. This ReDoS issue is on the client side and needs remote attackers to control the HTTP server.
Core and Builtins
- bpo-43105: Importlib now resolves relative paths when creating module spec objects from file locations.
- bpo-42924: Fix bytearray repetition incorrectly copying data from the start of the buffer, even if the data is offset within the buffer (e.g. after reassigning a slice at the start of the bytearray to a shorter byte string).
Library
- bpo-43993: Update bundled pip to 21.1.1.
- bpo-43937: Fixed the turtle module working with non-default root window.
- bpo-43930: Update bundled pip to 21.1 and setuptools to 56.0.0
- bpo-43920: OpenSSL 3.0.0: load_verify_locations() now returns a consistent error message when cadata contains no valid certificate.
- bpo-43607: urllib can now convert Windows paths with \\?\ prefixes into URL paths.
- bpo-43284: platform.win32_ver derives the windows version from sys.getwindowsversion().platform_version which in turn derives the version from kernel32.dll (which can be of a different version than Windows itself). Therefore change the platform.win32_ver to determine the version using the platform module’s _syscmd_ver private function to return an accurate version.
- bpo-42248: [Enum] ensure exceptions raised in _missing are released
- bpo-43799: OpenSSL 3.0.0: define OPENSSL_API_COMPAT 1.1.1 to suppress deprecation warnings. Python requires OpenSSL 1.1.1 APIs.
- bpo-43794: Add ssl.OP_IGNORE_UNEXPECTED_EOF constants (OpenSSL 3.0.0)
- bpo-43789: OpenSSL 3.0.0: Don’t call the password callback function a second time when first call has signaled an error condition.
- bpo-43788: The header files for ssl error codes are now OpenSSL version-specific. Exceptions will now show correct reason and library codes. The make_ssl_data.py script has been rewritten to use OpenSSL’s text file with error codes. …
| Publisher | Python Software Foundation |
|---|---|
| Version | 3.8.10 |
| Release date | 2021-05-03 |
| License | PSF-2.0 |
| Installer type | burn |
| Architecture | x86, x64 |
| Package ID | Python.Python.3.8 |
| Install scope | Current user |
winget install --id=Python.Python.3.8 -ewinget upgrade --id=Python.Python.3.8 -ewinget uninstall --id=Python.Python.3.8 -e"python-3.8.10-amd64.exe" /quiet /norestart InstallAllUsers=0 PrependPath=1"python-3.8.10-amd64.exe" DefaultJustForMeTargetDir=D:\Apps\Python 3.8msiexec /x {e9cd241b-9125-4624-9625-ff42d2f3647f} /quietPython 3.8 adds these commands to the command line: py, python, pythonw, pyw.
Python 3.8 can open or be associated with 7 file types:
Security
- bpo-42988: CVE-2021-3426: Remove the getfile feature of the pydoc module which could be abused to read arbitrary files on the disk (directory traversal vulnerability). Moreover, even source code of Python modules can contain sensitive data like passwords. Vulnerability reported by David Schwörer.
- bpo-43285: ftplib no longer trusts the IP address value returned from the server in response to the PASV command by default. This prevents a malicious FTP server from using the response to probe IPv4 address and port combinations on the client network.
Code that requires the former vulnerable behavior may set a trust_server_pasv_ipv4_address attribute on their ftplib.FTP instances to True to re-enable it.
- bpo-43439: Add audit hooks for gc.get_objects(), gc.get_referrers() and gc.get_referents(). Patch by Pablo Galindo.
Core and Builtins
- bpo-43660: Fix crash that happens when replacing sys.stderr with a callable that can remove the object while an exception is being printed. Patch by Pablo Galindo.
- bpo-35883: Python no longer fails at startup with a fatal error if a command line argument contains an invalid Unicode character. The Py_DecodeLocale() function now escapes byte sequences which would be decoded as Unicode characters outside the [U+0000; U+10ffff] range.
- bpo-43406: Fix a possible race condition where PyErr_CheckSignals tries to execute a non-Python signal handler.
Library …
There were no new changes in version 3.8.8.
Core and Builtins
- bpo-32381: Fix encoding name when running a .pyc file on Windows: PyRun_SimpleFileExFlags() now uses the correct encoding to decode the filename.
- bpo-42536: Several built-in and standard library types now ensure that their internal result tuples are always tracked by the garbage collector:
- collections.OrderedDict.items()
- dict.items()
- enumerate()
- functools.reduce()
- itertools.combinations()
- itertools.combinations_with_replacement()
- itertools.permutations()
- itertools.product()
- itertools.zip_longest()
- zip()
Previously, they could have become untracked by a prior garbage collection. Patch by Brandt Bucher.
Library
- bpo-42630: tkinter functions and constructors which need a default root window raise now RuntimeError with descriptive message instead of obscure AttributeError or NameError if it is not created yet or cannot be created automatically.
- bpo-42644: logging.disable will now validate the types and value of its parameter. It also now accepts strings representing the levels (as does loging.setLevel) instead of only the numerical values.
- bpo-36541: Fixed lib2to3.pgen2 to be able to parse PEP-570 positional only argument syntax.
- bpo-42375: subprocess module update for DragonFlyBSD support.
- bpo-39825: Windows: Change sysconfig.get_config_var('EXT_SUFFIX') to the expected full platform_tag.extension format. …
Python 3.8 is psf-2.0 software from Python Software Foundation. Check the publisher's license terms for pricing and usage rights.
The latest version is 3.8.10, released on May 3, 2021.
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 7628244cb53408b50639d2c1287c659f4e29d3dfdb9084b11aed5870c0c6a48a.
Python 3.8 runs on Windows and is available for 32-bit (x86), 64-bit (x64) systems.
Run the offline installer with "python-3.8.10-amd64.exe" /quiet /norestart InstallAllUsers=0 PrependPath=1, or install it with Windows Package Manager: winget install --id=Python.Python.3.8 -e --silent.
Open Settings › Apps › Installed apps, find Python 3.8 and select Uninstall. From the command line, run winget uninstall --id=Python.Python.3.8 -e.
Python 3.8 supports 7 file types, including .py, .pyc, .pyd, .pyo, .pyw, .pyz, .pyzw.