A remarkably powerful dynamic programming language

Python for Mac

Python 3.10.7

  -  39 MB  -  Open Source

Sometimes latest versions of the software can cause issues when installed on older devices or devices running an older version of the operating system.

Software makers usually fix these issues but it can take them some time. What you can do in the meantime is to download and install an older version of Python 3.10.7.

For those interested in downloading the most recent release of Python for Mac or reading our review, simply click here.

All old versions distributed on our website are completely virus-free and available for download at no cost.

We would love to hear from you

If you have any questions or ideas that you want to share with us - head over to our Contact page and let us know. We value your feedback!

  • Python 3.10.7 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    Python 3.10.7 Screenshot 1
  • Python 3.10.7 Screenshot 2
  • Python 3.10.7 Screenshot 3
  • Python 3.10.7 Screenshot 4
  • Python 3.10.7 Screenshot 5

What's new in this version:

- Converting between int and str in bases other than 2 (binary), 4, 8 (octal), 16 (hexadecimal), or 32 such as base 10 (decimal) now raises a ValueError if the number of digits in string form is above a limit to avoid potential denial of service attacks due to the algorithmic complexity. This is a mitigation for CVE-2020-10735.
- This new limit can be configured or disabled by environment variable, command line flag, or sys APIs. See the integer string conversion length limitation documentation. The default limit is 4300 digits in string form.

Core and Builtins:
- Fixed a bug that caused _PyCode_GetExtra to return garbage for negative indexes
- Fix format string in _PyPegen_raise_error_known_location that can lead to memory corruption on some 64bit systems. The function was building a tuple with i (int) instead of n (Py_ssize_t) for Py_ssize_t arguments.
- Fix misleading contents of error message when converting an all-whitespace string to float
- coroutine.throw() now properly initializes the frame.f_back when resuming a stack of coroutines. This allows e.g. traceback.print_stack() to work correctly when an exception (such as CancelledError) is thrown into a coroutine.
- ast.parse() will no longer parse function definitions with positional-only params when passed feature_version less than (3, 8)

- Correct conversion of numbers.Rational’s to float
- Fix a performance regression in logging TimedRotatingFileHandler. Only check for special files when the rollover time has passed.
- Fix unused localName parameter in the Attr class in xml.dom.minidom
- Update bundled pip to 22.2.2
- Fail gracefully if EPERM or ENOSYS is raised when loading crypt methods. This may happen when trying to load MD5 on a Linux kernel with FIPS enabled.

- Improve discoverability of the higher level concurrent.futures module by providing clearer links from the lower level threading and multiprocessing modules.
- Update the default RFC base URL from deprecated tools.ietf.org to datatracker.ietf.org
- Fix stylesheet not working in Windows CHM htmlhelp docs. Contributed by C.A.M. Gerlach.
- bpo-47115: The documentation now lists which members of C structs are part of the Limited API/Stable ABI

- Mitigate the inherent race condition from using find_unused_port() in testSockName() by trying to find an unused port a few times before failing. Patch by Ross Burton.

- Build and test with OpenSSL 1.1.1q

- Document handling of extensions in Save As dialogs
- Include prompts when saving Shell (interactive input and output)