2026年10月2日、Python 3.15の3回目の候補版となる3.15.0rc3が公開されました。これにともない、正式版の予定日は10月1日から10月9日に変わっています。
その前日の10月1日には、3.10から3.14までの更新版もそろって公開されました。そして3.10は、この日でサポート期間を終えています。
10月に3.15が出ると聞いて、楽しみにしていた方もいるのではないでしょうか。今回は、この数日で起きたことと、私たちが何をすればいいのかを順番に見ていきます。
まずは何が起きたのかを整理しよう¶
ニュースが複数重なっているので、最初に全体を表にまとめます。日付はPythonのリリーススケジュールを定めたPEPの記載に合わせています。
| 日付 | 出来事 | ひとことで言うと |
|---|---|---|
| 2026年10月1日 | 3.10.22、3.11.17、3.12.15、3.13.16、3.14.8を公開 | 使われている全バージョンの更新 |
| 2026年10月1日 | 3.10がサポート終了 | 3.10.22が最後の更新 |
| 2026年10月1日 | 3.13.16が通常のバグ修正の最終版に | 以後はセキュリティ修正だけ |
| 2026年10月2日 | 3.15.0rc3を公開 | 予定になかった3回目の候補版 |
| 2026年10月9日(予定) | 3.15.0の正式版を公開 | 当初の10月1日から延期 |
PEPは、Pythonの仕様や運営の方針を文書にまとめたものです。各バージョンには、リリースの日程を記したPEPが1つずつあります。
PEPそのものについては、こちらでやさしく紹介しています。【関連記事】PEPとは?
Python 3.15の正式版は10月9日に¶
3.15のリリース日程を定めたPEP 790では、候補版rc3が2026年10月2日に公開済みとなりました。正式版は10月9日の予定です。
候補版(リリース候補、rcとも呼びます)は、ほぼ完成した状態で最終確認をしてもらうための版です。もともとの計画では、rc2の次はそのまま正式版になるはずでした。
なぜ3回目の候補版が出たのか¶
公式のリリースページによると、rc3は新機能のlazy importにまつわる直前の不具合修正を、正式版へ確実に含めるために出されたものです。lazy importは、モジュールを実際に使う瞬間まで読み込みを遅らせて、起動を速くする3.15の目玉機能です。
延期と聞くと不安になるかもしれません。けれども、問題を残したまま出すより、1週間待って直したものを出すほうがずっと健全です。
私は10年ほどエンジニアとして開発に関わってきましたが、リリース直前に見つかった不具合を、日程を守るために後回しにして後悔した経験があります。だからこそ、予定を動かしてでも直すという判断には好感が持てます。
3.15で何が変わるのかをおさらい¶
3.15の新機能は、7月の記事で詳しく紹介しました。lazy import、書き換えられない辞書のfrozendict、UTF-8のデフォルト化などです。
正式版の予定日は当時の記事から変わりましたが、機能の中身はベータ1の時点で固まっています。rc3でも新機能は増えていないので、先に読んでおいても損はありません。【関連記事】Python 3.15の新機能を先取り解説!
候補版を試すときに気をつけたいこと¶
rc3は誰でもダウンロードして試せます。ただし公式のリリースページでも、候補版はあくまでプレビューであり、本番環境での利用は勧めないと明記されています。
試すなら、普段の開発環境とは分けて入れるのが基本です。仮想環境を作っておけば、うまく動かなくてもすぐに元へ戻せます。
自分のコードやよく使うライブラリが3.15で動くかを、正式版の前に確かめておく。これが候補版のいちばん正しい使い方です。
もし不具合を見つけたら、正式版の前に報告することで、Pythonをよくする手助けにもなります。
3.10はサポート終了、もう更新は出ない¶
もうひとつの大きなニュースが、3.10のサポート終了です。PEP 619には、2026年10月1日をもって3.10は終了の段階に入ったと書かれています。
3.10.22が最後のセキュリティ更新です。今後は修正版が出ないだけでなく、バグ報告も受け付けられません。
3.10といえば、match-case文が加わったバージョンです。登場から5年が経ち、役目を終えたことになります。
サポートが終わると何が困るのか¶
すぐにPythonが動かなくなるわけではありません。今日までのコードは、明日も同じように動きます。
困るのは、これから脆弱性が見つかったときです。脆弱性とは、攻撃に悪用されるおそれのある弱点のことで、終了したバージョンでは見つかっても直りません。
学習用のパソコンで練習しているだけなら、慌てる必要はありません。一方で、Webアプリやサーバーで3.10を動かしているなら、移行の計画を立て始めましょう。
ライブラリ側も3.10を外していく¶
もう1つ気をつけたいのが、ライブラリの対応です。多くのライブラリは、サポートが終わったバージョンを少しずつ対象から外していきます。
すると、3.10のままでは新しい版のライブラリが入らなくなります。気づいたときには、新機能もセキュリティ修正も受け取れない状態になっているわけです。
3.13は通常のバグ修正を卒業¶
10月1日に出た3.13.16は、3.13の通常のバグ修正としては最後の版です。PEP 719では、Windows向けやmacOS向けのインストーラーが付く通常の修正版はこれが最後とされています。
ここで、Pythonのバージョンが歩む一生を確認しておきましょう。PEP 602で決められた流れで、各バージョンは次の段階を順番にたどります。
| 段階 | 期間の目安 | 受け取れるもの |
|---|---|---|
| バグ修正期間 | 正式版から約2年 | バグ修正とセキュリティ修正。インストーラーも配布される |
| セキュリティ修正期間 | その後の約3年 | セキュリティ修正のみ。ソースコードだけの配布 |
| サポート終了 | 正式版から5年後 | 何も届かない |
なお、バグ修正期間が2年になったのは3.13からです。3.12以前は1年半でした。
3.13は、2番目のセキュリティ修正期間に入りました。PEP 719によると、セキュリティ修正は2029年10月ごろまで続く予定です。
ちょっと意外かもしれませんが、セキュリティ修正期間に入ると公式のインストーラーが配られなくなります。これから新しくPythonを入れるなら、3.14か、正式版が出たあとの3.15を選ぶのが無難です。
今のバージョンごとの状況を一覧で確認¶
10月2日時点での、各バージョンの状況を表にまとめます。終了時期は、それぞれのリリーススケジュールを定めたPEPに書かれた目安です。
| バージョン | 最新版 | 今の段階 | セキュリティ修正の終了 |
|---|---|---|---|
| 3.15 | 3.15.0rc3 | 候補版(正式版は10月9日予定) | 2031年10月ごろ |
| 3.14 | 3.14.8 | バグ修正期間 | 2030年10月ごろ |
| 3.13 | 3.13.16 | セキュリティ修正期間へ移行 | 2029年10月ごろ |
| 3.12 | 3.12.15 | セキュリティ修正期間 | 2028年10月ごろ |
| 3.11 | 3.11.17 | セキュリティ修正期間 | 2027年10月ごろ |
| 3.10 | 3.10.22 | サポート終了 | 2026年10月1日に終了 |
こうして並べると、毎年10月に新しいバージョンが出て、5年前のバージョンが引退するリズムがよくわかりますね。来年の今ごろは3.11が引退する番です。
自分のPythonのサポート状況を確かめるコード¶
では、手元のPythonがどの段階にあるのか、確かめてみましょう。sysモジュールのversion_infoで、動いているPythonのバージョンがわかります。
次のコードは、上の表をもとに、セキュリティ修正があとどれくらい続くかを表示します。終了日は各PEPの目安を月の初日に置き換えたものなので、正確な日付は公式の情報で確認してください。
import datetime
import sys
# 各バージョンのセキュリティ修正が終わる時期の目安(各リリーススケジュールのPEPより)
SECURITY_END = {
(3, 10): datetime.date(2026, 10, 1),
(3, 11): datetime.date(2027, 10, 1),
(3, 12): datetime.date(2028, 10, 1),
(3, 13): datetime.date(2029, 10, 1),
(3, 14): datetime.date(2030, 10, 1),
}
version = sys.version_info[:2]
today = datetime.date.today()
end = SECURITY_END.get(version)
print(f"今使っているPython: {version[0]}.{version[1]}")
if end is None:
print("一覧にないバージョンです。公式の情報を確認してください。")
elif today >= end:
print("サポートが終了しています。新しいバージョンへの移行を考えましょう。")
else:
days = (end - today).days
print(f"セキュリティ修正はあと約{days}日({end:%Y年%m月}ごろまで)続きます。")
10月2日に手元のPython 3.11で実行すると、次のように表示されました。
今使っているPython: 3.11
セキュリティ修正はあと約364日(2027年10月ごろまで)続きます。
3.11も、残り1年を切りました。数字で見ると、移行の計画を立てる気持ちになりますね。
学習者と実務の人がやっておきたいこと¶
最後に、立場ごとにやっておきたいことを整理します。全員が今すぐ動く必要はないので、自分に関係するところだけ拾ってください。
| 立場 | やっておきたいこと |
|---|---|
| これから学び始める人 | 3.14を入れる。3.15は正式版が出て、使うライブラリの対応を確かめてからでよい |
| 3.10で学習している人 | 急がなくてよいが、次にPythonを入れ直すときに3.14へ |
| 3.10で動くアプリを持つ人 | 移行計画を立てる。まず別の環境で3.14や3.13を試す |
| 3.13を使っている人 | まだ数年は安全。ただし新しい環境を作るなら3.14を選ぶ |
| 新しいもの好きの人 | rc3で手元のコードを試し、問題があれば報告する |
バージョンの切り替えは、pyenvやuvを使うと、今の環境を壊さずに試せます。複数のバージョンを並べて試せるのが、こうしたツールの強みです。
pyenvを使ったやり方は、こちらで手順を追って解説しています。【関連記事】pyenvの使い方をわかりやすく解説!
uvなら、Python本体のインストールまでまとめて面倒を見てくれます。【関連記事】uvとは?Rust製の高速Pythonパッケージ管理ツール
以前、サポートが切れたバージョンのまま動いていた社内ツールを、ライブラリの更新ができなくなってから慌てて移行したことがあります。余裕のあるうちに少しずつ上げるほうが、結局は手間が少なく済みました。
まとめ¶
10月の初めは、Pythonにとって世代交代の時期です。今年は3.15の正式版が10月9日に延び、3.10が引退し、3.13がセキュリティ修正だけの段階に入りました。
学習者にとって大切なのは、今どのバージョンを選べば安心かを知っておくことです。迷ったら3.14、3.15は正式版が出てライブラリが追いついてから、と覚えておけば十分です。
3.15の正式版が出たら、このサイトでもあらためて紹介する予定です。それまでに、手元のPythonのバージョンを一度確かめてみてください。
ここまでお読みいただきありがとうございました。