Survival guide for py2 diehards

Ver Dropped on Source
3.x 2.1 PEP 11
95 2.6
98 2.6
Me 2.6
NT4 2.6
2000 3.4
XP 3.5 BPO-23451
Vista 3.8 adang1345/PythonVista
7 3.9 BPO-32592
8.0 3.9 GH-21656
8.1 3.14 GH-98383, GH-113723

According to PEP 11, Vista support should have been dropped in 3.7, but wasn't.

The linked issues for Windows 8.1 states that support should be dropped in 3.13, however the 3.13 documentation still states that Windows 8.1 is supported, while the 3.14 documentation states that Windows 10 is required.

Workarounds/loopholes

MSYS2 provided up-to-date py3 for some time when it still supported Windows 7. Some time between September and November 2024 (which was my two final times of updating MSYS2 packages on Windows 7), MSYS2 discontinued support for Windows 7. The update in November made all binaries incompatible with Windows 7. If someone still has a working MSYS2 environment (i.e. wasn't updated since November 2024), newer Python 3 might be usable in MSYS2. My broken MSYS2 installation has 3.9 and 3.10. I'd guess that means Windows integration wouldn't be usable though.

As of March 2025, PyPy's requirement is "any windows 64-bit" [sic]. It also requires vcredist 2015. Since the first x64 version of Windows is XP Pro x64 (based on Server 2003 x64), vcredist 2015 actually doesn't make the requirement stricter. This should give x64 Windows XP access to 3.6 ~ 3.11.

The last version of PyPy to provide a 32-bit Windows build is 7.3.3, with Python 3.6, 3.7 and 2.7. This gives 32-bit XP access to 3.6 and 3.7.

Modifications

Python 2.7 for Windows 95/98/Me and Windows NT 3.51/4.0

Patch for Python 3.5.2 for Windows XP

Python 3.8+ for Windows Vista+

Python 3.9 & 3.10 for Windows 7

MinGW/MSYS Python 3.10 for Windows XP

Last patch releases

For most Python X.Y releases since 2.3, the last few X.Y.Z releases only contain security fixes, and are only provided in source code form; in other words, official installers aren't provided, and you'll need Visual Studio to compile it for Windows. The below table lists the last bugfix release (for which an official installer is provided) and the last security release (for which an official installer isn't provided) for each Python X.Y. NEOL = not end-of-life (as of writing)

bugfixsecurity
2.3.52.3.7
2.4.42.4.6
2.5.42.5.6
2.6.62.6.9
2.7.18-
3.0.1-
3.1.43.1.5
3.2.53.2.6
3.3.53.3.7
3.4.43.4.10
3.5.43.5.10
3.6.83.6.15
3.7.93.7.17
3.8.103.8.20
3.9.133.9.25
3.10.11NEOL
3.11.9NEOL
3.12.10NEOL