Popular: Data updated October 26, 2026

Categories

Internet1,355
Communication321
Audio & video898
Graphics & design539
Office & productivity1,120
Developer tools3,132
AI tools527
Security & privacy385
System tools3,113
Games523
Education & science239
Network & IT284

Python 3.13 3.13.8 download

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

This is an older version. The current version is 3.13.15. Python 3.13 3.13.15 · Released:
3.13.8 is part of the 3.13 line, supported until October 31, 2029. endoflife.date

Installer files 3.13.8

ArchitectureTypeScopeFile sizeDownloadSHA256
64-bit EXE (WiX Burn) Current user 28.8 MB python.org VirusTotal
64-bit EXE (WiX Burn) All users 28.8 MB python.org VirusTotal
ARM64 EXE (WiX Burn) Current user 28.1 MB python.org VirusTotal
ARM64 EXE (WiX Burn) All users 28.1 MB python.org VirusTotal
32-bit EXE (WiX Burn) Current user 27.4 MB python.org VirusTotal
32-bit EXE (WiX Burn) All users 27.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

macOS
- gh-124111: Update macOS installer to use Tcl/Tk 8.6.17.
- gh-139573: Updated bundled version of OpenSSL to 3.0.18.
Windows
- gh-139573: Updated bundled version of OpenSSL to 3.0.18.
- gh-138896: Fix error installing C runtime on non-updated Windows machines
Tools/Demos
- gh-139330: SBOM generation tool didn’t cross-check the version and checksum values against the Modules/expat/refresh.sh script, leading to the values becoming out-of-date during routine updates.
- gh-137873: The iOS test runner has been simplified, resolving some issues that have been observed using the runner in GitHub Actions and Azure Pipelines test environments.
Tests
- gh-139208: Fix regrtest --fast-ci --verbose: don’t ignore the --verbose option anymore. Patch by Victor Stinner.
Security
- gh-139400: xml.parsers.expat: Make sure that parent Expat parsers are only garbage-collected once they are no longer referenced by subparsers created by ExternalEntityParserCreate(). Patch by Sebastian Pipping.
- gh-139283: sqlite3: correctly handle maximum number of rows to fetch in Cursor.fetchmany and reject negative values for Cursor.arraysize. Patch by Bénédikt Tran.
- gh-135661: Fix CDATA section parsing in html.parser.HTMLParser according to the HTML5 standard: ] ]> and ]] > no longer end the CDATA section. Add private method _set_support_cdata() which can be used to specify how to parse <[CDATA[ — as a CDATA section in foreign content (SVG or MathML) or as a bogus comment in the HTML namespace.
Library
- gh-139312: Upgrade bundled libexpat to 2.7.3
- gh-139289: Do a real lazy-import on rlcompleter in pdb and restore the existing completer after importing rlcompleter.
- gh-139210: Fix use-after-free when reporting unknown event in xml.etree.ElementTree.iterparse(). Patch by Ken Jin.
- gh-138860: Lazy import rlcompleter in pdb to avoid deadlock in subprocess.
- gh-112729: Fix crash when calling _interpreters.create when the process is out of memory.
- gh-139076: Fix a bug in the pydoc module that was hiding functions in a Python module if they were implemented in an extension module and the module did not have __all__.
- gh-138998: Update bundled libexpat to 2.7.2
- gh-130567: Fix possible crash in locale.strxfrm() due to a platform bug on macOS.
- gh-138779: Support device numbers larger than 2**63-1 for the st_rdev field of the os.stat_result structure.
- gh-128636: Fix crash in PyREPL when os.environ is overwritten with an invalid value for mac
- gh-88375: Fix normalization of the robots.txt rules and URLs in the urllib.robotparser module. No longer ignore trailing ?. Distinguish raw special characters ?, = and & from the percent-encoded ones.
- gh-138515: email is added to Emscripten build.
- gh-111788: Fix parsing errors in the urllib.robotparser module. Don’t fail trying to parse weird paths. Don’t fail trying to decode non-UTF-8 robots.txt files.
- gh-138432: zoneinfo.reset_tzpath() will now convert any os.PathLike objects it receives into strings before adding them to TZPATH. It will raise TypeError if anything other than a string is found after this conversion. If given an os.PathLike object that represents a relative path, it will now raise ValueError instead of TypeError, and present a more informative error message.
- gh-138008: Fix segmentation faults in the ctypes module due to invalid argtypes. Patch by Dung Nguyen.
- gh-60462: Fix locale.strxfrm() on Solaris (and possibly other platforms).
- gh-138204: Forbid expansion of shared anonymous memory maps on Linux, which caused a bus error.
- gh-138010: Fix an issue where defining a class with a @warnings.deprecated-decorated base class may not invoke the correct __init_subclass__() method in cases involving multiple inheritance. Patch by Brian Schubert.
- gh-138133: Prevent infinite traceback loop when sending CTRL^C to Python through strace.
- gh-134869: Fix an issue where pressing Ctrl+C during tab completion in the REPL would leave the autocompletion menu in a corrupted state.
- gh-137317: inspect.signature() now correctly handles classes that use a descriptor on a wrapped __init__() or __new__() method. Contributed by Yongyu Yan.
- gh-137754: Fix import of the zoneinfo module if the C implementation of the datetime module is not available.
- gh-137490: Handle ECANCELED in the same way as EINTR in signal.sigwaitinfo() on NetBSD.
- gh-137477: Fix inspect.getblock(), inspect.getsourcelines() and inspect.getsource() for generator expressions.
- gh-137017: Fix threading.Thread.is_alive to remain True until the underlying OS thread is fully cleaned up. This avoids false negatives in edge cases involving thread monitoring or premature threading.Thread.is_alive calls.
- gh-136134: SMTP.auth_cram_md5() now raises an SMTPException instead of a ValueError if Python has been built without MD5 support. In particular, SMTP clients will not attempt to use this method even if the remote server is assumed to support it. Patch by Bénédikt Tran.
- gh-136134: IMAP4.login_cram_md5 now raises an IMAP4.error if CRAM-MD5 authentication is not supported. Patch by Bénédikt Tran.
- gh-135386: Fix opening a dbm.sqlite3 database for reading from read-only file or directory.
- gh-126631: Fix multiprocessing forkserver bug which prevented __main__ from being preloaded.
- gh-123085: In a bare call to importlib.resources.files(), ensure the caller’s frame is properly detected when importlib.resources is itself available as a compiled module only (no source).
- gh-118981: Fix potential hang in multiprocessing.popen_spawn_posix that can happen when the child proc dies early by closing the child fds right away.
- gh-78319: UTF8 support for the IMAP APPEND command has been made RFC compliant.
- bpo-38735: Fix failure when importing a module from the root directory on unix-like platforms with sys.pycache_prefix set.
- bpo-41839: Allow negative priority values from os.sched_get_priority_min() and os.sched_get_priority_max() functions.
Core and Builtins
- gh-134466: Don’t run PyREPL in a degraded environment where setting termios attributes is not allowed.
- gh-71810: Raise OverflowError for (-1).to_bytes() for signed conversions when bytes count is zero. Patch by Sergey B Kirpichev.
- gh-105487: Remove non-existent __copy__(), __deepcopy__(), and __bases__ from the __dir__() entries of types.GenericAlias.
- gh-134163: Fix a hang when the process is out of memory inside an exception handler.
- gh-138479: Fix a crash when a generic object’s __typing_subst__ returns an object that isn’t a tuple.
- gh-137576: Fix for incorrect source code being shown in tracebacks from the Basic REPL when

PYTHONSTARTUP is given. Patch by Adam Hartz.
- gh-132744: Certain calls now check for runaway recursion and respect the system recursion limit.
C API
- gh-87135: Attempting to acquire the GIL after runtime finalization has begun in a different thread now causes the thread to hang rather than terminate, which avoids potential crashes or memory corruption caused by attempting to terminate a thread that is running code not specifically designed to support termination. In most cases this hanging is harmless since the process will soon exit anyway.
While not officially marked deprecated until 3.14, PyThread_exit_thread is no longer called internally and remains solely for interface compatibility. Its behavior is inconsistent across platforms, and it can only be used safely in the unlikely case that every function in the entire call stack has been designed to support the platform-dependent termination mechanism. It is recommended that users of this function change their design to not require thread termination. In the unlikely case that thread termination is needed and can be done safely, users may migrate to calling platform-specific APIs such as pthread_exit (POSIX) or _endthreadex (Windows) directly.
Build
- gh-135734: Python can correctly be configured and built with ./configure --enable-optimizations --disable-test-modules. Previously, the profile data generation step failed due to PGO tests where immortalization couldn’t be properly suppressed. Patch by Bénédikt Tran.

https://docs.python.org/release/3.13.8/whatsnew/changelog.html#python-3-13-8

Most popular in Languages & SDKs

See all
  1. Go Programming LanguageAn open source programming language that makes it simple to build secure, scalable systems.
  2. LLVMA collection of modular and reusable compiler and toolchain technologies.
  3. DenoA modern runtime for JavaScript and TypeScript
  4. CMakeCMake is a cross-platform, open-source build system generator.
  5. YarnYarn is a package manager that doubles down as project manager. Whether you work on one-shot projects or large monorepos, as a hobbyist or an enterprise user, we've got you covered.
  6. CcacheCcache is a compiler cache. It speeds up recompilation by caching previous compilations and detecting when the same compilation is being done again.
  7. sbtA build tool for Scala, Java, and more
  8. BOINCOpen-source software for volunteer computing and grid computing.
  9. Dart SDKA set of tools and libraries for the Dart programming language.
  10. NVM for WindowsA node.js version management utility for Windows. Ironically written in Go.

More from Python Software Foundation

See all
  • Python 3.14A programming language that lets you work more quickly and integrate your systems more effectively.
  • Python 3.12Python is a programming language that lets you work more quickly and integrate your systems more effectively.
  • Python 3.11Python is a programming language that lets you work more quickly and integrate your systems more effectively.
  • Python 3.10Python is a programming language that lets you work more quickly and integrate your systems more effectively.
  • Python Install ManagerInstall, manage, and launch Python on Windows.
  • Python 3.9Python is a programming language that lets you work more quickly and integrate your systems more effectively.

Tags

Share