HTTP/2 302
date: Fri, 26 Dec 2025 10:45:52 GMT
content-type: text/html; charset=utf-8
content-length: 0
server: cloudflare
location: /versions/
cf-ray: 9b3ffdb5f8187fa8-BLR
cf-cache-status: EXPIRED
access-control-allow-origin: *
cache-control: max-age=1200
content-language: en
vary: Accept-Language, Accept-Encoding
access-control-allow-methods: HEAD, OPTIONS, GET
cdn-cache-control: public
cross-origin-opener-policy: same-origin
referrer-policy: no-referrer-when-downgrade
x-backend: web-i-010e9d47b48704d72
x-content-type-options: nosniff
x-rtd-domain: devguide.python.org
x-rtd-force-addons: true
x-rtd-project: cpython-devguide
x-rtd-project-method: custom_domain
x-rtd-resolver-filename: /versions
x-rtd-version: latest
x-rtd-version-method: path
x-served: Proxito-404
set-cookie: __cf_bm=it_HqbDVYcND7XuZz5uA0X0rUS2nuRJpJdZWjKEFXp4-1766745952-1.0.1.1-bgeOP3ZJF8KBfJYLhk9obpdF1oGtjDkxkULEh60gjyymZU5wx5jGzgzfU9FtV4r1SXJOAc5V1uC.HKFcZxdAhztwfb31_gPiWc84bvPAcMk; path=/; expires=Fri, 26-Dec-25 11:15:52 GMT; domain=.devguide.python.org; HttpOnly; Secure; SameSite=None
set-cookie: _cfuvid=R7URts.I.jmM7AD6BQYiyAx0LNBrLl6MLKUvkVVogZo-1766745952644-0.0.1.1-604800000; path=/; domain=.devguide.python.org; HttpOnly; Secure; SameSite=None
alt-svc: h3=":443"; ma=86400
HTTP/2 200
date: Fri, 26 Dec 2025 10:45:52 GMT
content-type: text/html; charset=utf-8
server: cloudflare
cf-ray: 9b3ffdbc0a437fa8-BLR
cf-cache-status: HIT
access-control-allow-origin: *
age: 843
cache-control: max-age=1200
content-encoding: gzip
etag: W/"18b09c999460df401567ef3c6429179a"
last-modified: Sun, 21 Dec 2025 09:14:08 GMT
vary: Accept-Encoding
access-control-allow-methods: HEAD, OPTIONS, GET
cdn-cache-control: public
cross-origin-opener-policy: same-origin
referrer-policy: no-referrer-when-downgrade
x-amz-id-2: mw8ZE+igRhxsnrOOETz7bA5QTRId06er/vo/KEgXaL6FKVJGfWmLvMeRWJmdM0HxKOguD/wJ59JZmV4quRlkpFX8fKxWCBY7btMcP2j3hM8=
x-amz-meta-mtime: 1766308439.719202555
x-amz-request-id: YS4V3KC8QRMQ5KN4
x-amz-server-side-encryption: AES256
x-backend: web-i-0511f98c8f16f9a89
x-content-type-options: nosniff
x-rtd-domain: devguide.python.org
x-rtd-force-addons: true
x-rtd-path: /proxito/html/cpython-devguide/latest/versions/index.html
x-rtd-project: cpython-devguide
x-rtd-project-method: custom_domain
x-rtd-resolver-filename: /versions/
x-rtd-version: latest
x-rtd-version-method: path
x-served: Nginx-Proxito-Sendfile
alt-svc: h3=":443"; ma=86400
Status of Python versions
Contents
Expand
Light mode
Dark mode
Auto light/dark, in light mode
Auto light/dark, in dark mode
Skip to content
Back to top
Status of Python versions
The main branch is currently the future Python 3.15, and is the only
branch that accepts new features. The latest release for each Python
version can be found on the download page .
'19
'20
'21
'22
'23
'24
'25
'26
'27
'28
'29
'30
'31
end-of-life
Python 2.7
end-of-life
Python 3.6
end-of-life
Python 3.7
end-of-life
Python 3.8
end-of-life
Python 3.9
security
Python 3.10
security
Python 3.11
security
Python 3.12
bugfix
Python 3.13
bugfix
Python 3.14
feature
Python 3.15
(See below for a chart with older versions.
Another useful visualization is endoflife.date/python .)
Supported versions
Dates shown in italic are scheduled and can be adjusted.
Branch
Schedule
Status
First release
End of life
Release manager
main
PEP 790
feature
2026-10-01
2031-10
Hugo van Kemenade
3.14
PEP 745
bugfix
2025-10-07
2030-10
Hugo van Kemenade
3.13
PEP 719
bugfix
2024-10-07
2029-10
Thomas Wouters
3.12
PEP 693
security
2023-10-02
2028-10
Thomas Wouters
3.11
PEP 664
security
2022-10-24
2027-10
Pablo Galindo Salgado
3.10
PEP 619
security
2021-10-04
2026-10
Pablo Galindo Salgado
Unsupported versions
Branch
Schedule
Status
First release
End of life
Release manager
3.9
PEP 596
end-of-life
2020-10-05
2025-10-31
Łukasz Langa
3.8
PEP 569
end-of-life
2019-10-14
2024-10-07
Łukasz Langa
3.7
PEP 537
end-of-life
2018-06-27
2023-06-27
Ned Deily
3.6
PEP 494
end-of-life
2016-12-23
2021-12-23
Ned Deily
3.5
PEP 478
end-of-life
2015-09-13
2020-09-30
Larry Hastings
3.4
PEP 429
end-of-life
2014-03-16
2019-03-18
Larry Hastings
3.3
PEP 398
end-of-life
2012-09-29
2017-09-29
Georg Brandl & Ned Deily (3.3.7)
3.2
PEP 392
end-of-life
2011-02-20
2016-02-20
Georg Brandl
3.1
PEP 375
end-of-life
2009-06-27
2012-04-09
Benjamin Peterson
3.0
PEP 361
end-of-life
2008-12-03
2009-06-27
Barry Warsaw
2.7
PEP 373
end-of-life
2010-07-03
2020-01-01
Benjamin Peterson
2.6
PEP 361
end-of-life
2008-10-01
2013-10-29
Barry Warsaw
Full chart
'08
'09
'10
'11
'12
'13
'14
'15
'16
'17
'18
'19
'20
'21
'22
'23
'24
'25
'26
'27
'28
'29
'30
'31
end-of-life
Python 2.6
end-of-life
Python 2.7
end-of-life
Python 3.0
end-of-life
Python 3.1
end-of-life
Python 3.2
end-of-life
Python 3.3
end-of-life
Python 3.4
end-of-life
Python 3.5
end-of-life
Python 3.6
end-of-life
Python 3.7
end-of-life
Python 3.8
end-of-life
Python 3.9
security
Python 3.10
security
Python 3.11
security
Python 3.12
bugfix
Python 3.13
bugfix
Python 3.14
feature
Python 3.15
Status key
Python releases go through five phases, as described in PEP 602 . Release
managers can adjust specific dates as needed.
feature:
Before the first beta, the next full release can accept new features,
bug fixes, and security fixes.
prerelease:
After the first beta, no new features can go in, but feature fixes
(including significant changes to new features), bug fixes, and security fixes
are accepted for the upcoming feature release.
bugfix:
Once a version has been fully released, bug fixes and security fixes are
accepted. New binaries are built and released roughly every two months. This
phase is also called maintenance mode or stable release.
security:
After two years (18 months for versions before 3.13), only security
fixes are accepted and no more binaries are released. New source-only versions
can be released as needed.
end-of-life:
Five years after a release, support ends. The release cycle is
frozen; no further changes are allowed.
See also the Development cycle page for more information about branches and backporting.