A remarkably powerful dynamic programming language

Python (32-bit)

Python 3.10.6 (32-bit)

  -  26.5 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.6 (32-bit).


For those interested in downloading the most recent release of Python (32-bit) 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.6 (32-bit) Screenshots

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

    Python 3.10.6 (32-bit) Screenshot 1
  • Python 3.10.6 (32-bit) Screenshot 2
  • Python 3.10.6 (32-bit) Screenshot 3
  • Python 3.10.6 (32-bit) Screenshot 4
  • Python 3.10.6 (32-bit) Screenshot 5

What's new in this version:

Security:
- http.server: Fix an open redirection vulnerability in the HTTP server when an URI path starts with //. Vulnerability discovered, and initial fix proposed, by Hamza Avvan.
- Fix memoryview use after free when accessing the backing buffer in certain cases

Core and Builtins:
- _PyPegen_Parser_New now properly detects token memory allocation errors
- Fix error detection in some builtin functions when keyword argument name is an instance of a str subclass with overloaded __eq__ and __hash__. Previously it could cause SystemError or other undesired behavior.
- ast.parse() will no longer parse parenthesized context managers when passed feature_version less than (3, 9). Patch by Shantanu Jain.
- ast.parse() will no longer parse assignment expressions when passed feature_version less than (3, 8). Patch by Shantanu Jain.
- Fix the column offsets for some expressions in multi-line f-strings ast nodes
- Fix an issue where a bytearray item assignment could crash if it’s resized by the new value’s __index__() method.
- Compile and run code with unpacking of extremely large sequences (1000s of elements). Such code failed to compile. It now compiles and runs correctly.
- Fixed a tokenizer crash when reading encoded files with syntax errors from stdin with non utf-8 encoded text
- Fix error for dictionary literals with invalid expression as value.
- Strengthened compiler overflow checks to prevent crashes when compiling very large source files.
- Fix some exponential backtrace case happening with deeply nested sequence patterns in match statements
- Fix the __text_signature__ for __get__() methods implemented in C. Patch by Jelle Zijlstra.
- Fixed a crash in _pickle.c from mutating collections during __reduce__ or persistent_id.
- Always round the allocated size for lists up to the nearest even number.
- Improve error message for some suites with syntax error before ‘:’

Library:
- Update bundled pip to 22.2.1
- Fix GC crash when deallocating _lsprof.Profiler by untracking it before calling any callbacks
- Fix IndexError in parsing invalid date in the email module
- Upgrade bundled setuptools to 63.2.0
- Upgrade bundled pip to 22.2
- Fix check for existence of os.EFD_CLOEXEC, os.EFD_NONBLOCK and os.EFD_SEMAPHORE flags on older kernel versions where these flags are not present
- Fix concurrent.futures.Executor.map() to cancel the currently waiting on future on an error - e.g. TimeoutError or KeyboardInterrupt.
- Fix fileinput module didn’t support errors option when inplace is true.
- Fix binding of unix socket to empty address on Linux to use an available address from the abstract namespace, instead of “0”.
- Fix crash when deallocating an instance of a subclass of _multiprocessing.SemLock
- SSLContext.set_default_verify_paths() now releases the GIL around SSL_CTX_set_default_verify_paths call. The function call performs I/O and CPU intensive work.
- Re-entrant calls to sys.setprofile() and sys.settrace() now raise RuntimeError.
- Fix bug where linecache.getline() fails on bad files with UnicodeDecodeError or SyntaxError. It now returns an empty string as per the documentation.
- Fix memory leak in pickle.Pickler when looking up dispatch_table
- Fixed types of struct module to be immutable
- Fix pickling and copying of typing.Tuple[()].
- Made _struct.Struct GC-tracked in order to fix a reference leak in the _struct module.
- Manual instantiation of ssl.SSLSession objects is no longer allowed as it lead to misconfigured instances that crashed the interpreter when attributes where accessed on them.
- inspect.iscoroutinefunction(), inspect.isgeneratorfunction(), and inspect.isasyncgenfunction() now properly return True for duck-typed function-like objects like instances of unittest.mock.AsyncMock.
- This makes inspect.iscoroutinefunction() consistent with the behavior of asyncio.iscoroutinefunction(). Patch by Mehdi ABAAKOUK.
- Fix double closing of file description in tempfile.
- Fixed names and __module__ value of weakref classes ReferenceType, ProxyType, CallableProxyType. It makes them pickleable.
- copy.copy() and copy.deepcopy() now always raise a TypeError if __reduce__() returns a tuple with length 6 instead of silently ignore the 6th item or produce incorrect result.
- Fix a multiprocessing bug where a global named resource (such as a semaphore) could leak when a child process is spawned (as opposed to forked).
- sqlite3 now correctly detects DML queries with leading comments. Patch by Erlend E. Aasland.
- Update sqlite3.Cursor.rowcount when a DML statement has run to completion. This fixes the row count for SQL queries like UPDATE ... RETURNING. Patch by Erlend E. Aasland.
- Suppress writing an XML declaration in open files in ElementTree.write() with encoding='unicode' and xml_declaration=None.
- Fix the importlib.resources.as_file() context manager to remove the temporary file if destroyed late during Python finalization: keep a local reference to the os.remove() function. Patch by Victor Stinner.
- Make multiprocessing.Pool raise an exception if maxtasksperchild is not None or a positive int.
- shutil.make_archive() no longer temporarily changes the current working directory during creation of standard .zip or tar archives.
- Move imports in SharedMemory methods to module level so that they can be executed late in python finalization.
- Fixed an issue with inconsistent trailing slashes in tarfile longname directories
- In QueueHandler, clear stack_info from LogRecord to prevent stack trace from being written twice
- Fix OSS audio support on NetBSD
- Fix ensurepip environment isolation for subprocess running pip
- Fix asyncio incorrect traceback when future’s exception is raised multiple times- sqlite3.Connection.iterdump() now handles databases that use AUTOINCREMENT in one or more tables