2024年1月時点でのPythonの各バージョンのサポート期限と、bugfixやsecurity、end-of-lifeなど、サポート状態を示す用語、Pythonのバージョンとの関連についてまとめた。
バージョン | 最新のマイクロバージョン | サポート期限 | 状態 |
---|---|---|---|
Python 3.12 | 3.12.1 | 2028年10月 | bugfix(バグ修正) |
Python 3.11 | 3.11.7 | 2027年10月 | bugfix(バグ修正) |
Python 3.10 | 3.10.13 | 2026年10月 | security(セキュリティ修正) |
Python 3.9 | 3.9.18 | 2025年10月 | security(セキュリティ修正) |
Python 3.8 | 3.8.18 | 2024年10月 | security(セキュリティ修正) |
↑サポート期間中 ↓サポート終了 |
− | − | − |
Python 3.7 | 3.7.17 | 2023年6月27日 | end-of-life(サポート終了) |
Python 3.6 | 3.6.15 | 2021年12月23日 | end-of-life(サポート終了) |
Python 3.5 | 3.5.10 | 2020年9月30日 | end-of-life(サポート終了) |
Python 3.4 | 3.4.10 | 2019年3月18日 | end-of-life(サポート終了) |
Python 3.3 | 3.3.7 | 2017年9月29日 | end-of-life(サポート終了) |
Python 3.2 | 3.2.6 | 2016年2月20日 | end-of-life(サポート終了) |
Python 3.1 | 3.1.5 | 2012年4月9日 | end-of-life(サポート終了) |
Python 3.0 | 3.0.1 | 2009年6月27日 | end-of-life(サポート終了) |
Python 2.7 | 2.7.17 | 2020年1月1日 | end-of-life(サポート終了) |
Pythonの各バージョンのサポート期限と状態(2024年1月19日時点) |
状態 | 行われる作業 | バイナリファイルのリリース | 備考 |
---|---|---|---|
bugfix | バグ修正/セキュリティ修正 | ○ | メインテナンスモード、ステーブルリリースとも呼ばれる |
security | セキュリティ修正のみ | × | ソースコードのみの提供 |
end-of-life | コードが修正されることはない | − | − |
状態を表す値 |
※これは2024年1月19日時点の情報をまとめたものです。
Pythonのドキュメント「Status of Python versions」によれば、Pythonの新バージョン(3.10、3.11、3.12など、マイナーバージョンが上がり、新機能を提供するようになったバージョン。フィーチャーリリース、機能リリースとも)は、デフォルトではその初回リリースの5年後にサポートが終了する(end-of-lifeとなる)ようにスケジュールが設定されている。
例えば、Python 3.7の初回リリースは2018年6月27日であり、サポートが終了したのはその5年後の2023年6月27日だ。また、Python 3.8の初回リリースは2019年10月14日、サポートが終了するのはその約5年後である2024年10月となっている。
こうしたことを踏まえて、2024年1月19日時点でのPythonのサポート状況をまとめると次のようになる。
サポートされているバージョンについて、いつサポート期限が来るかは冒頭に示した表を参照されたい。
また上記表の「状態」列を見ると分かるが、どのような形でサポートされるかには種類がある。おおまかにいえば、以下の2種類に分けられる。
例えば、以下は現在security状態にあるPython 3.10.13のダウンロードページだが、ソースコードのみが提供されていることが分かる。
この他にもフィーチャーリリースに至る前のfeature(新機能の受け入れ、バグ修正、セキュリティ修正などが行われる開発段階の状態を表す)やprerelease(フィーチャーリリースに含まれる新機能などが決定し固定された後、機能の修正、バグ修正、セキュリティ修正などが行われるリリース前の段階を表す)もあるが、これらの詳細についてはPythonのドキュメント「Status of Python versions」「Development cycle」などを参照のこと。
サポートが終了したバージョンについては「end-of-life」という状態になり、コードベースがそれ以上変更されることはなくなり、セキュリティ修正などが行われたバージョンがリリースされることもなくなる。
Pythonのバージョンは「メジャーバージョン.マイナーバージョン.マイクロバージョン」で示される。例えば、Python 3.12.0はメジャーバージョンが「3」、マイナーバージョンは「12」、マイクロバージョンが「0」である。
現在では、Pythonの新バージョンといえば、マイナーバージョンが1つ上がり、マイクロバージョンが「0」となるリリースのことを指す(例:Python 3.12.0、Python 3.11.0など)。
現状では新しいメジャーバージョン(Python 4)が近年のうちにリリースされることは想定されていない。また、新しいマイナーバージョンは年に一度、10月に新しい機能などを含む形でリリースされている。新しいマイクロバージョンは、バグ修正やセキュリティ修正を含むもので、およそ2カ月に一度リリースされる(新しいマイクロバージョンに新機能が追加されるようなことはない)。
上記のbugfixとは、新しいマイナーバージョンがリリースされた後に、バグ修正やセキュリティ修正が行われたバージョンがリリースされる状態のことだ。このときにはマイクロバージョンが1つずつ上がっていく(例:Python 3.12.1)。
また、新しいマイナーバージョン(例:Python 3.12)でbugfixリリースが何度か行われた時点で、以前のマイナーバージョン(例:Python 3.11)はsecurity状態となる。security状態では、既に述べたようにセキュリティ修正のみが行われ、ソースコードのみが提供される。securityモードでリリースされるバージョンについては、bugfixのマイクロバージョンを受け継いで、マイクロバージョンが1つずつ上がっていく。
現在、自分が使用しているPythonのバージョンは最長でも5年でサポートが終了することは頭に入れておこう。
Copyright© Digital Advantage Corp. All Rights Reserved.