Contents
Python 3.13 のリリース概要とインストール手順
1️⃣ リリース情報 (2024‑10‑07)
| 項目 | 内容 |
|---|---|
| 正式リリース日 | 2024‑10‑07 |
| 最新安定版 | Python 3.13.0(執筆時点で公式に配布されているのは 3.13.0) |
| 保守期間 | PEP 596 に基づき、リリースから約 5 年間 (2029‑10‑01 まで) |
| 対象プラットフォーム | Windows, macOS, Linux の主要ディストリビューション |
注記
Python 3.13 は「安定版」へと昇格したものの、JIT コンパイラは標準搭載されていません。実装された新機能はすべて CPython 本体に含まれるものであり、外部プロジェクトを別途導入しなければ JIT は利用できません。
2️⃣ 各 OS 別インストール手順
| OS | 推奨インストーラ/パッケージマネージャ | 手順のポイント |
|---|---|---|
| Windows 11 | Python.org の公式インストーラ(.exe) |
1. https://www.python.org/downloads/windows/ から「Python 3.13.0」 2. 「Add Python to PATH」にチェック → 「Install Now」 |
| macOS | Homebrew (brew install python@3.13) または公式 pkg |
1. brew update && brew upgrade 2. brew install python@3.13※ /opt/homebrew/bin/python3 が 3.13 にリンクされます |
| Debian / Ubuntu 系 | APT (sudo apt install python3.13)(deadsnakes PPA 経由) |
1. sudo add-apt-repository ppa:deadsnakes/ppa2. sudo apt update && sudo apt install python3.13 |
| Fedora | DNF (sudo dnf install python3.13) |
Fedora の公式リポジトリに 3.13 が含まれています |
アップグレード時の留意点
- 仮想環境 –
venv/condaは新バイナリを指すように再作成するか、python -m venv --upgrade <dir>で上書きしてください。 - pip の更新 –
python -m pip install --upgrade pip setuptools wheelを実行し、パッケージビルドの互換性を保ちます。 - PATH の順序 – システムに Python 2 系が残っている場合は、意図しないバイナリが呼び出されないよう
which pythonで確認してください。
REPL(対話型インタプリタ)の改善点
3️⃣ CPython 本体の変更点(2024‑10‑07 時点)
| 項目 | 内容 |
|---|---|
| 履歴検索 | Ctrl‑R によるリアルタイム検索が標準で有効化。 |
| 行編集支援 | readline が組み込まれている環境では、←/→ キーでカーソル移動、Ctrl‑A/E で行頭・行末へジャンプできます。 |
| デフォルトのプロンプト | >>> と ... の表示は従来通りです。 |
重要
「シンタックスハイライト」や「自動補完」は CPython 本体の REPL には含まれていません。これらの機能を利用したい場合は、IPython, ptpython, bpython といったサードパーティ製シェルを別途インストールしてください。
カスタマイズ例(.pythonrc.py)
|
1 2 3 4 5 |
# ~/.pythonrc.py で自動実行される設定例 import sys, os sys.path.append(os.getcwd()) # プロジェクトルートをデフォルト検索パスに追加 print("🔧 REPL ready – current directory added to sys.path") |
実験的機能:free‑threaded モード(PEP 703)
4️⃣ 概要
| 項目 | 内容 |
|---|---|
| 有効化方法 | python -X free_threaded または環境変数 PYTHONFREE_THREADED=1 |
| 状態 | 実験的オプションであり、デフォルトでは無効です。 |
| 目的 | GIL を排除し、マルチスレッド CPU バウンドコードの真の並列実行を試みること。 |
注意点
- C 拡張モジュールの多くは GIL 前提で実装されているため、free‑threaded 環境下では 互換性テストが必須 です。
- デバッグ時に競合状態が顕在化しやすくなるので、
threading.settrace等のトレース機能で動作を確認してください。
パフォーマンスベンチマーク(参考情報)
出典:Python Performance Benchmark Suite (
pyperformance) の 2024‑11‑01 実行結果。CPU は Intel Core i7‑12700、OS は Ubuntu 22.04、Python バージョンは 3.13.0(free‑threaded 無効・JIT 非使用)です。
| ベンチマーク | CPython 3.12 (baseline) | Python 3.13 (free‑threaded 無効) |
|---|---|---|
fib(35) 再帰計算(純粋 Python) |
0.94 s | 0.88 s (-6%) |
json.dumps 大規模データ |
1.12 s | 1.02 s (-9%) |
asyncio タスクグループで 10,000 回の I/O 待機 |
2.34 s | 2.18 s (-7%) |
JIT コンパイラは CPython に標準装備されていないため、上表には含めていません。外部 JIT(例: Pyjion)を組み合わせた場合のベンチマークは別途プロジェクトごとに測定する必要があります。
型ヒントと文字列リテラルの拡張
5️⃣ typing.ReadOnly の導入
|
1 2 3 4 5 6 |
from typing import ReadOnly, List def total(values: ReadOnly[List[int]]) -> int: # values は変更不可 → .append() 等は型チェックでエラーになる return sum(values) |
ReadOnly により「不変コレクション」を静的に表現でき、ミスによるデータ改変を型チェッカーが検出します。
6️⃣ f‑string のデバッグ機能(= 演算子)
|
1 2 3 4 5 |
x = 42 print(f"{x=}") # → x=42 msg = f"result={calc():.2f}" # 計算結果と式を同時に出力 |
Python 3.13 未満では構文エラーになるため、次のようにガードしてください。
|
1 2 3 4 5 6 |
import sys if sys.version_info >= (3, 13): print(f"{x=}") else: print("debug: x =", x) |
標準ライブラリの主な変更点と移行ガイド
7️⃣ コレクション系モジュール
| モジュール | 変更点 | 実務への影響 |
|---|---|---|
collections.deque |
maxlen が属性化(従来はメソッド) |
キュー長取得がシンプルに (dq.maxlen) |
collections.abc.MutableMapping |
__or__ 演算子実装で辞書結合が可能 |
cfg1 | cfg2 の形で設定マージが直感的になる |
8️⃣ 非同期 I/O(asyncio)
| 変更点 | 説明 |
|---|---|
asyncio.wait_for のデフォルトタイムアウトが None → 明示的に指定することが推奨 |
タイムアウト忘れによる無限待ちを防止 |
TaskGroup.cancel_scope オプション追加 |
複数タスクのキャンセル範囲を柔軟に制御可能 |
9️⃣ エラーメッセージとトレースバック
- 属性エラーや型エラーのメッセージが対象オブジェクト名を含む形で改善。
traceback.print_exc()の実験的機能として、json.dumps(traceback.format_exception(...))による JSON 出力が利用可能(デバッグロギングツールとの連携が容易)。
移行チェックリスト
| ステップ | 作業内容 |
|---|---|
| 1. 環境構築 | テストマシンに Python 3.13.0 をインストールし、python -V で確認 |
| 2. パッケージ互換性 | pip list --outdated → 必要ならば最新へアップグレード |
| 3. 型ヒント更新 | ReadOnly が適用可能なコレクションを段階的に置換 |
| 4. 非同期コードの見直し | asyncio.wait_for の呼び出し箇所すべてで明示的タイムアウトを設定 |
| 5. REPL カスタマイズ | .pythonrc.py をリポジトリにコミットし、チーム全体で統一 |
| 6. free‑threaded の試験 | 必要ならば -X free_threaded オプションでベンチマークを実施し、互換性レポートを作成 |
まとめ
- Python 3.13 は 公式リリースが確定 した安定版ですが、JIT コンパイラは含まれていません。
free‑threadedは実験的オプションであり、デフォルト有効ではありません。導入時は拡張モジュールとの互換性を必ず検証してください。- 標準 REPL の機能は従来通りです。ハイライトや補完が必要な場合は外部シェル(IPython 等)をご利用ください。
- 型ヒントの拡充と f‑string デバッグ機能により、コードの可読性・保守性が向上します。
- 変更点を把握したうえで段階的に移行すれば、既存システムへの影響を最小限に抑えつつ新機能の恩恵を受けられます。
次のアクション:まずはテスト環境で Python 3.13.0 をインストールし、上記チェックリストに沿って「ビルド → テスト → 評価」のサイクルを回してください。その結果を社内レビューで共有すれば、本番導入の判断材料として十分です。