2025年8月14日、Python開発チームから最新のプレビュー版であるPython 3.14.0rc2および安定版のメンテナンスリリースであるPython 3.13.7が同時にリリースされました。
今回のリリースは当初の予定を前倒しして行われた「急遽の対応」としての側面が強く、特に3.14系におけるバイトコードの仕様変更や、3.13系における通信モジュールの致命的なバグ修正が含まれています。
本記事では、これら2つのリリースにおける重要な変更点と、開発者が注意すべきポイントについて詳しく解説します。
Python 3.14.0rc2:予定を繰り上げた異例のリリース
Python 3.14の第2回リリース候補版 (rc2) は、当初2025年8月26日に予定されていましたが、約2週間前倒しで公開されました。
この急なスケジュールの変更には、Pythonの内部動作に関わる重要な修正が関係しています。
バイトコードのマジックナンバー変更
今回のrc2では、Pythonのバイトコードである .pyc ファイルに格納される「マジックナンバー」を変更するバグ修正が行われました。
マジックナンバーはPythonのバージョンごとに異なり、実行環境とコンパイル済みファイルの整合性を保つために使用されます。
この変更により、rc1で生成された .pyc ファイルは rc2 では使用できなくなります。rc2をインストールして実行する際、既存のキャッシュファイルは自動的に再コンパイルされますが、配布パッケージなどを作成している場合は注意が必要です。
なお、ABI (Application Binary Interface) に変更はないため、rc1向けにビルドされたバイナリホイール (Wheels) はそのまま rc2 や今後の 3.14.x でも動作し続けることが保証されています。
今後のリリーススケジュール
この早期リリースの影響で、当初の計画にはなかった「rc3」が追加されることになりました。
最新のスケジュールは以下の通りです。
| 開発フェーズ | 予定日 |
|---|---|
| Python 3.14.0rc3 (追加) | 2025年9月16日 |
| Python 3.14.0 正式リリース | 2025年10月07日 |
Python 3.14 の注目すべき新機能
Python 3.14では、パフォーマンス向上と開発体験の改善を目的とした数多くの新機能が導入されます。
rc2の段階で、これらの機能はほぼ確定しています。
t-strings (テンプレート文字列) の導入
PEP 750により、Template string literals (t-strings) が導入されました。
これは f-strings と似た構文を持ちながら、文字列の評価をカスタマイズできる仕組みです。
# t-stringsの概念的な例 (PEP 750)
# 文字列を直接評価せず、独自のハンドラに渡すことが可能
from html import escape
def html(template):
# テンプレート内の変数をエスケープ処理するロジック
return "".join(escape(str(part)) for part in template)
name = "<script>alert('xss')</script>"
# t-stringsを用いた安全なレンダリング
render = html"Hello, {name}"
print(render)
自由スレッド (Free-threaded) Python の公式サポート
PEP 779により、GIL (Global Interpreter Lock) を無効化した実行環境が正式にサポートされました。
マルチコアCPUの性能をより直接的に引き出すことが可能になり、並列処理のパフォーマンスが大幅に向上することが期待されています。
注釈の遅延評価 (PEP 649)
型ヒントなどのアノテーションの評価タイミングが改善されました。
これにより、実行時のパフォーマンス低下を防ぎつつ、型情報の参照がより柔軟に行えるようになります。
その他の主な変更点
- 新モジュール compression.zstd: 高速な圧縮アルゴリズム Zstandard が標準ライブラリでサポートされました。
- Androidバイナリの提供: rc2から公式にAndroid向けのバイナリリリースが開始されました。
- JITコンパイラの実験的導入: WindowsおよびmacOSの公式バイナリに、実験的なJITコンパイラが含まれています。
Python 3.13.7:SSLモジュールの致命的な不具合を修正
安定版である Python 3.13 系列についても、バージョン 3.13.7 が急遽リリースされました。
これは、前バージョンである 3.13.6 で混入した ssl モジュールの重大なデグレード (先祖返り) を解消するためです。
SSL/TLS 通信のブロッキング問題
3.13.6 において、TLS暗号化された接続からデータを読み取る際に、処理が意図せずブロックされてしまうという問題 (gh-137583) が報告されました。
これはネットワークアプリケーションや API 通信において通信不能に陥る可能性がある深刻なバグです。
3.13.7 ではこの修正が最優先で行われており、3.13.6 を利用しているユーザーは速やかに 3.13.7 へアップデートすることが強く推奨されています。
開発環境の管理と新しいインストーラー
Windowsユーザー向けには、新しいインストール管理ツール「Python Install Manager」の利用が推奨されています。
これは Microsoft Store または python.org から入手可能で、複数の Python バージョンをより簡単に管理できるように設計されています。
また、セキュリティ面では PEP 761 に基づき、今回から PGP署名の提供が廃止されました。
今後は Sigstore を利用した認証が推奨されるため、自動ビルドパイプラインなどで署名検証を行っている場合は、検証フローの更新が必要になります。
まとめ
今回のリリースは、Python 3.14 の正式公開に向けた最終調整と、現行安定版 3.13 の信頼性回復という2つの重要な役割を持っています。
3.14.0rc2 では、バイトコードの互換性に影響する修正が行われたものの、主要な機能追加(t-strings、自由スレッド化、zstdサポートなど)は順調に進んでいます。
一方、3.13.7 は SSL 通信の致命的な問題を解決するための必須アップデートです。
開発者の皆様は、新しい Python 3.14 の機能をテスト環境で試行しつつ、本番環境においては 3.13.7 への早期移行を検討してください。
10月に予定されている Python 3.14 の正式リリースに向けて、ライブラリのメンテナーは自身のプロジェクトが新しいバージョンで正しく動作するか、今のうちに確認しておくことが重要です。
