Python version information: Difference between revisions

From ihaveahax's Site
Jump to navigationJump to search
 
(152 intermediate revisions by the same user not shown)
Line 7: Line 7:


The one for the latest version in the 3.x series could be outdated until I remember to update it.
The one for the latest version in the 3.x series could be outdated until I remember to update it.
Note about macOS: The version number indicates the SDK used to build it. For macOS 11/Universal 2 binaries, 10.9 is the minimum between 3.8 and 3.12.5; 10.13 is the minimum starting with 3.12.6.


{| class="wikitable"
{| class="wikitable"
Line 13: Line 15:
! Ver !! w32 !! w64 !! wa64 !! 10.6 !! 10.9 !! 11/u2 !! Notes
! Ver !! w32 !! w64 !! wa64 !! 10.6 !! 10.9 !! 11/u2 !! Notes
|-
|-
| '''[https://www.python.org/downloads/release/python-3120b3/ 3.12.0b3]''' || {{/dl|3.12.0b3|w32}} || {{/dl|3.12.0b3|w64}} || {{/dl|3.12.0b3|wa64}} || || || {{/dl|3.12.0b3|11}} || '''current pre-release'''
| {{/tbldl|3.14.0|a6|cur=1|w32=1|w64=1|wa64=1|11=1|notes='''current pre-release'''}}
|-
| {{/tbldl|3.13.2|cur=1|w32=1|w64=1|wa64=1|11=1|notes='''current'''}}
|-
| {{/tbldl|3.12.9|w32=1|w64=1|wa64=1|11=1}}
|-
| {{/tbldl|3.11.9|w32=1|w64=1|wa64=1|11=1|notes=Last one to support macOS 10.9 to 10.12}}
|-
|-
| '''[https://www.python.org/downloads/release/python-3114/ 3.11.4]''' || {{/dl|3.11.4|w32}} || {{/dl|3.11.4|w64}} || {{/dl|3.11.4|wa64}} ||  ||  || {{/dl|3.11.4|11}} || '''current'''
| {{/tbldl|3.10.11|w32=1|w64=1|11=1}}
|-
|-
| [https://www.python.org/downloads/release/python-31011/ 3.10.11] || {{/dl|3.10.11|w32}} || {{/dl|3.11.4|w64}} ||  ||  ||  || {{/dl|3.11.4|11}} ||
| {{/tbldl|3.9.13|w32=1|w64=1|10.9=1|11=1}}
|-
|-
| [https://www.python.org/downloads/release/python-3913/ 3.9.13] || {{/dl|3.9.13|w32}} || {{/dl|3.9.13|w64}} ||  ||  || {{/dl|3.9.13|10.9}} || {{/dl|3.9.13|11}} ||
| {{/tbldl|3.8.10|w32=1|w64=1|10.9=1|11=1|notes=Last one to support Windows 7}}
|-
|-
| [https://www.python.org/downloads/release/python-3810/ 3.8.10] || {{/dl|3.8.10|w32}} || {{/dl|3.8.10|w64}} ||  ||  || {{/dl|3.8.10|10.9}} || {{/dl|3.8.10|11}} || Last one to support Windows 7
| {{/tbldl|3.7.9|w32=1|w64=1|10.9=1}}
|-
|-
| [https://www.python.org/downloads/release/python-379/ 3.7.9] || {{/dl|3.7.9|w32}} || {{/dl|3.7.9|w64}} ||  ||  || {{/dl|3.7.9|10.9}} ||  ||
| {{/tbldl|3.6.8|w32=1|w64=1|10.6=1|10.9=1|notes=3.6.8 and 3.6.7 don't actually work on 10.6, 3.6.6 is the last one that does}}
|-
|-
| [https://www.python.org/downloads/release/python-368/ 3.6.8] || {{/dl|3.6.8|w32}} || {{/dl|3.6.8|w64}} ||  || {{/dl|3.6.8|10.6}} || {{/dl|3.6.8|10.9}} ||  ||
| {{/tbldl|3.5.4|w32=1|w64=1|10.6=1}}
|-
|-
| [https://www.python.org/downloads/release/python-354/ 3.5.4] || {{/dl|3.5.4|w32}} || {{/dl|3.5.4|w64}} ||  || {{/dl|3.5.4|10.6}} ||  ||  ||
| [https://www.python.org/downloads/release/python-344/ 3.4.4] || {{/dlold|3.4.4|w32}} || {{/dlold|3.4.4|w64}} ||  || {{py-dl|3.4.4|10.6}} ||  ||  || Last version to support Windows XP
|-
|-
| [https://www.python.org/downloads/release/python-2718/ 2.7.18] || {{/dlold|2.7.18|w32}} || {{/dlold|2.7.18|w64}} ||  ||  || {{/dl|2.7.18|10.9}} ||  || Last version of 2.x
| [https://www.python.org/downloads/release/python-2718/ 2.7.18] || {{/dlold|2.7.18|w32}} || {{/dlold|2.7.18|w64}} ||  ||  || {{py-dl|2.7.18|10.9}} ||  || Last version of 2.x
|-
|-
| [https://www.python.org/downloads/release/python-2717/ 2.7.17] || {{/dlold|2.7.17|w32}} || {{/dlold|2.7.18|w64}} ||  || {{/dl|2.7.18|10.6}} || {{/dl|2.7.18|10.9}} ||  || Last version with 32/64 macOS installer
| [https://www.python.org/downloads/release/python-2717/ 2.7.17] || {{/dlold|2.7.17|w32}} || {{/dlold|2.7.17|w64}} ||  || {{py-dl|2.7.17|10.6}} || {{py-dl|2.7.17|10.9}} ||  || Last version with 32/64 macOS installer
|}
|}


== Distribution versions ==
For Windows, I made a PowerShell script to install multiple versions at once: [[/RunPythonInstallers.ps1]]
 
== Official support status ==


'''Bold''' distribution versions indicates an LTS release (for distros with this distinction).
https://devguide.python.org/versions/


'''Bold''' Python versions indicates the default one (what you get if you install "python3" or equivalent). This only includes what's in the official repositories.
== Distribution versions ==
<!--
for myself when i update sections:
Last updated: {{#time:H:i, j F Y (e)|{{subst:REVISIONTIMESTAMP}}}}
-->


<s>''Strikethrough''</s> indicates an EOL distribution.
* '''Bold''' distribution versions indicates an LTS release (for distros with this distinction). <s>Strikethrough</s> indicates an EOL distribution. ''Italic'' indicates a beta distribution.
* '''Bold''' Python versions indicates the default one (what you get if you install "python3" or equivalent). This only includes what's in the official repositories.
* A "t" next to a version means a free-threading build is available.


=== Ubuntu ===
=== Ubuntu ===
Last updated: {{#time:H:i, j F Y (e)|20250212181525}}
EOL does not include Expanded Security Maintenance (ESM).


* <s>'''''18.04''''' (bionic)</s> - '''3.6.9''', 3.7.5, 3.8.0
* <s>'''18.04''' (bionic)</s> - '''3.6.9''', 3.7.5, 3.8.0
* '''20.04''' (focal) - '''3.8.10''', 3.9.5
* '''20.04''' (focal) - '''3.8.10''', 3.9.5
* '''22.04''' (jammy) - '''3.10.6''', 3.11.0rc1
* '''22.04''' (jammy) - '''3.10.6''', 3.11.0rc1
* 22.10 (kinetic) - '''3.10.7''', 3.11.0rc2
* <s>22.10</s> (kinetic) - '''3.10.7''', 3.11.0rc2
* 23.04 (lunar) - '''3.11.2'''
* <s>23.04</s> (lunar) - '''3.11.2'''
* <s>23.10</s> (mantic) - '''3.11.6''', 3.12.0
* '''24.04''' (noble) - '''3.12.3'''
* 24.10 (oriole) - '''3.12.7''', 3.13.0
* ''25.04'' (plucky) - 3.12.9, '''3.13.2'''


=== Debian ===
=== Debian ===
Last updated: {{#time:H:i, j F Y (e)|20250216035331}}


* <s>9 (stretch)</s> - '''3.5.3'''
* <s>9 (stretch)</s> - '''3.5.3''', 2.7.13
* 10 (buster) - '''3.7.3'''
* <s>10 (buster)</s> - '''3.7.3''', 2.7.16
* 11 (bullseye) - '''3.9.2'''
* 11 (bullseye) - '''3.9.2''', 2.7.18
* 12 (bookworm) - '''3.11.2'''
* 12 (bookworm) - '''3.11.2'''
* ''13 (trixie)'' - '''3.13.2''', 3.12.9


=== Fedora ===
=== Fedora ===
<!-- for f in python3{,.{6,7,8,9,10,11,12,13,14}}; do dnf info $f | grep 'Version  '; done -->
Last updated: {{#time:H:i, j F Y (e)|20250212181947}}
Usually the last two releases are kept up to date with the latest releases.


* 37 - '''3.11.3''', 3.10.12, 3.9.17, 3.8.17, 3.7.16, 3.6.15
* <s>35</s> - 3.12.0a2, 3.11.1, '''3.10.8''', 3.9.16, 3.8.16, 3.7.16, 3.6.15
* 38 - '''3.11.3''', 3.10.12, 3.9.17, 3.8.17, 3.7.16, 3.6.15
* <s>36</s> - 3.12.0a7, 3.11.3, '''3.10.11''', 3.9.16, 3.8.16, 3.7.16, 3.6.15
* <s>37</s> - 3.13.0a2, 3.12.0, '''3.11.5''', 3.10.13, 3.9.18, 3.8.18, 3.7.16, 3.6.15
* <s>38</s> - 3.13.0b1, 3.12.3, '''3.11.9''', 3.10.14, 3.9.19, 3.8.19, 3.7.17, 3.6.15
* <s>39</s> - 3.14.0a1t, 3.13.0t, '''3.12.7''', 3.11.10, 3.10.15, 3.9.20, 3.8.20, 3.7.17, 3.6.15
* 40 - 3.14.0a4t, 3.13.1t, '''3.12.8''', 3.11.11, 3.10.16, 3.9.21, 3.8.20, 3.6.15
* 41 - 3.14.0a4t, '''3.13.2'''t, 3.12.9, 3.11.11, 3.10.16, 3.9.21, 3.8.20, 3.6.15
* ''42'' - 3.14.0a4t, '''3.13.2'''t, 3.12.9, 3.11.11, 3.10.16, 3.9.21, 3.8.20, 3.6.15


=== Red Hat Enterprise Linux and derivatives ===
=== Red Hat Enterprise Linux and derivatives ===


* 8 - 3.11.2, 3.9.16, 3.8.16, '''3.6.8''', 2.7.18
The actual versions are checked on Rocky Linux and AlmaLinux.
* 9 - '''3.9.16''', 3.11.2
 
Last updated: {{#time:H:i, j F Y (e)|20241027170956}}
 
* 8 - 3.12.5, 3.11.9, 3.9.20, 3.8.17, '''3.6.8''', '''2.7.18'''
* 9 - 3.12.1, 3.11.7, '''3.9.18'''
 
=== Nix ===
Last updated: {{#time:H:i, j F Y (e)|20250224080349}}
 
* <s>23.11</s> - 3.13.0b2, 3.12.2, '''3.11.8''', 3.10.14, 3.9.19, 3.8.19
* <s>24.05</s> - 3.13.1t, 3.12.7, '''3.11.10''', 3.10.15, 3.9.20
* 24.11 - 3.14.0a4t, 3.13.1t, '''3.12.8''', 3.11.11, 3.10.16, 3.9.21
* nixpkgs-unstable - 3.14.0a5t, 3.13.2t, '''3.12.9''', 3.11.11, 3.10.16, 3.9.21
<!--
nix-instantiate --eval --json --strict - --argstr branch nixpkgs-unstable <<'EOF' | jq
{ branch }:
 
let
  pkgs = import (builtins.getFlake "github:NixOS/nixpkgs/${branch}") { };
  getPyVer =
    ver: if pkgs ? "python${toString ver}" then pkgs."python${toString ver}".version else null;
in
{
  versions = [
    (getPyVer 39)
    (getPyVer 310)
    (getPyVer 311)
    (getPyVer 312)
    (getPyVer 313)
    (getPyVer 314)
  ];
  default = getPyVer 3;
}
EOF
-->
 
=== Alpine Linux ===
Last updated: {{#time:H:i, j F Y (e)|20250216035616}}
 
* <s>3.17</s> - '''3.10.15'''
* 3.18 - '''3.11.11'''
* 3.19 - '''3.11.11'''
* 3.20 - '''3.12.9'''
 
=== FreeBSD ===
<!--
find python versions here: https://cgit.freebsd.org/ports/tree/lang
and the default one here as PYTHON_DEFAULT: https://cgit.freebsd.org/ports/tree/Mk/bsd.default-versions.mk
-->
Last updated: {{#time:H:i, j F Y (e)|20241029213620}}
 
* 14.1 - '''3.11.10''', 3.10.15, 3.9.20, 3.8.20, 2.7.18


=== Arch Linux ===
=== Arch Linux ===


Usually updated to the latest release or is one point release behind. https://archlinux.org/packages/core/x86_64/python/
Usually updated to the latest release or is one point release behind. https://archlinux.org/packages/core/x86_64/python/
Unlike most other distributions, "python" on Arch Linux refers to 3.x and not 2.7.


=== SteamOS ===
=== SteamOS ===
Last updated: {{#time:H:i, j F Y (e)|20241027170647}}


* 3.4 - '''3.10.8'''
* 3.4 - '''3.10.8'''
 
* 3.5 - '''3.11.3'''
=== FreeBSD ===
* 3.6 - '''3.11.7'''
 
* 12.4 - 3.11.0, 3.10.8, 3.9.15, 3.8.15, 3.7.15
* 13.1 - 3.11.0a6, 3.10.4, 3.9.12, 3.8.13, 3.7.13
* 13.2 - 3.11.1, 3.10.9, 3.9.16, 3.8.16, 3.7.16


=== Xcode (macOS) ===
=== Xcode (macOS) ===


Comes with the Command Line Tools and the full Xcode.app.
Comes with the Command Line Tools and the full Xcode.app. The binary at <code>/usr/bin/python3</code> depends on either being installed, like most of the development tools. If neither are installed, it automatically prompts for the Command Line Tools.


* 13 - '''3.8.9'''
* 14 - '''3.9.6'''
* 14 - '''3.9.6'''
* 15 - '''3.9.6'''
* 15 - '''3.9.6'''
* 16 - '''3.9.6'''


=== Homebrew (macOS) ===
=== Homebrew (macOS) ===
Line 95: Line 183:


MacPorts has versions 3.2 to the latest stable release.
MacPorts has versions 3.2 to the latest stable release.
=== winget (Windows) ===
winget's repository contains Python versions 2.5 to 2.7 and 3.0 to 3.13. These download the installers from python.org.
The full list of versions is here: https://github.com/microsoft/winget-pkgs/tree/master/manifests/p/Python/Python
winget can also install the Microsoft Store versions.


=== Microsoft Store (Windows) ===
=== Microsoft Store (Windows) ===
Line 103: Line 199:


* [https://apps.microsoft.com/store/search?hl=en-us&gl=us&rtc=1&publisher=Python%20Software%20Foundation All PSF apps on the Microsoft Store]
* [https://apps.microsoft.com/store/search?hl=en-us&gl=us&rtc=1&publisher=Python%20Software%20Foundation All PSF apps on the Microsoft Store]
=== MSys2 (Windows) ===
MSys2 has Python 3.x and 2.x packages for each repository. Similar to Unix, the command is "python3" and "python2".
* msys: [https://packages.msys2.org/package/python?repo=msys&variant=x86_64 python], [https://packages.msys2.org/package/python2?repo=msys&variant=x86_64 python2]
* clang32: [https://packages.msys2.org/package/mingw-w64-clang-i686-python?repo=clang32 mingw-w64-clang-i686-python], [https://packages.msys2.org/package/mingw-w64-clang-i686-python2?repo=clang32 mingw-w64-clang-i686-python2]
* clang64: [https://packages.msys2.org/package/mingw-w64-clang-x86_64-python?repo=clang64 mingw-w64-clang-x86_64-python], [https://packages.msys2.org/package/mingw-w64-clang-x86_64-python2?repo=clang64 mingw-w64-clang-x86_64-python2]
* clangarm64: [https://packages.msys2.org/package/mingw-w64-clang-aarch64-python?repo=clangarm64 mingw-w64-clang-aarch64-python], [https://packages.msys2.org/package/mingw-w64-clang-aarch64-python2?repo=clangarm64 mingw-w64-clang-aarch64-python2]
* mingw32: [https://packages.msys2.org/package/mingw-w64-i686-python?repo=mingw32 mingw-w64-i686-python], [https://packages.msys2.org/package/mingw-w64-i686-python2?repo=mingw32 mingw-w64-i686-python2]
* mingw64: [https://packages.msys2.org/package/mingw-w64-x86_64-python?repo=mingw64 mingw-w64-x86_64-python], [https://packages.msys2.org/package/mingw-w64-x86_64-python2?repo=mingw64 mingw-w64-x86_64-python2]
* ucrt64: [https://packages.msys2.org/package/mingw-w64-ucrt-x86_64-python?repo=ucrt64 mingw-w64-ucrt-x86_64-python], [https://packages.msys2.org/package/mingw-w64-ucrt-x86_64-python2?repo=ucrt64 mingw-w64-ucrt-x86_64-python2]