ソフトウェア
中級

Python 3.13(パイソンさんてんじゅうさん)

Python プログラミング言語の最新版。2024 年 10 月リリース。実験的な No-GIL サポート、JIT コンパイラ、改良されたインタラクティブ REPL を導入。

0 回閲覧
0 いいね
2026/4/25 更新
関連タグ
Python
プログラミング言語
Open Source

Python 3.13

概要

Python 3.13 は、Python Software Foundation が 2024 年 10 月 7 日にリリースした Python プログラミング言語の最新メジャーバージョンです。実験的ながらも GIL(Global Interpreter Lock)の削除、JIT(Just-In-Time)コンパイラの初期実装、改良されたインタラクティブ REPL、型システムの強化など、Python の将来を示す重要な機能が多数追加されました。

主要な新機能

1. 実験的な Free-Threaded Python(No-GIL)

長年の課題だった GIL の削除が実験的に可能になりました:

# No-GIL ビルド
python3.13t  # 't' は threaded

メリット:

  • 真のマルチスレッド並列処理
  • CPU バウンドタスクで劇的な高速化
  • マルチコア CPU の性能を活用

注意:

  • 実験的機能: 本番利用は慎重に
  • 一部 C 拡張で問題: 対応待ち

2. 実験的 JIT コンパイラ

  • Copy-and-Patch 方式
  • 5-10% の高速化(初期実装)
  • 将来的に大きな改善期待
# ビルド時に有効化
./configure --enable-experimental-jit

3. 新しいインタラクティブ REPL

  • PyPy の PyRepl 採用
  • マルチライン編集
  • カラー対応
  • 履歴検索
  • F1-F3 キーでヘルプ、履歴、ペースト

4. 改良されたエラーメッセージ

# Python 3.12
>>> user.nme
AttributeError: 'User' object has no attribute 'nme'

# Python 3.13
>>> user.nme
AttributeError: 'User' object has no attribute 'nme'. Did you mean: 'name'?

5. Type System 強化

TypeIs(PEP 742)

from typing import TypeIs

def is_str(val: object) -> TypeIs[str]:
    return isinstance(val, str)

def process(val: str | int):
    if is_str(val):
        val.upper()  # 型が str に narrow される
    else:
        val + 1      # 型が int に narrow される

TypeVar の default 値(PEP 696)

from typing import TypeVar, Generic

T = TypeVar('T', default=str)

class Container(Generic[T]):
    def __init__(self, value: T) -> None:
        self.value = value

Container("hello")  # T = str
Container(42)       # T = int

6. incremental GC 改善

  • ガベージコレクタ高速化
  • 大規模データ処理で効果

7. argparse の deprecated_subparser

  • 廃止予定コマンドの明示

Python 3.13t(No-GIL ビルド)

インストール

# pyenv で
pyenv install 3.13.0t

# 直接ビルド
./configure --disable-gil
make

使用例

from threading import Thread
import time

def cpu_intensive():
    result = 0
    for i in range(10**8):
        result += i
    return result

threads = []
for _ in range(8):
    t = Thread(target=cpu_intensive)
    t.start()
    threads.append(t)

for t in threads:
    t.join()

従来(GIL あり): 8 スレッドでも 1 コアのみ使用 Python 3.13t: 8 コアをフル活用

Python の進化

バージョン年主要機能
Python 3.102021match 文、Union 型
Python 3.11202225% 高速化、例外グループ
Python 3.122023PEP 695 型エイリアス、f-string 改良
Python 3.132024No-GIL、JIT、新 REPL
Python 3.142025 予定更なる JIT 改善

パフォーマンス比較

Python 3.10 → 3.13

  • 全体的に 40% 高速化
  • 起動時間改善
  • JIT で追加 5-10%

Free-Threaded Python

  • CPU バウンド: コア数に応じて線形スケール
  • I/O バウンド: 従来とほぼ同じ
  • オーバーヘッド: シングルスレッドで 10-15% 遅い

移行の注意点

1. サードパーティライブラリ

  • No-GIL 対応は徐々に
  • NumPy、Pandas 等は対応作業中

2. C 拡張

  • 再コンパイル必要な場合あり
  • 一部互換性問題

3. 非推奨機能

  • 古い API の削除
  • 警告を確認

主要ライブラリの対応(2025 年初頭)

Python 3.13 対応済み

  • NumPy(2.2+)
  • Pandas(2.2+)
  • Requests
  • Flask、Django(5.x)
  • FastAPI
  • Pydantic(2.x)

No-GIL 対応進行中

  • scikit-learn
  • Matplotlib
  • TensorFlow
  • PyTorch

使用方法

インストール

# macOS
brew install [email protected]

# Ubuntu
sudo apt install python3.13

# pyenv
pyenv install 3.13.0

# Docker
docker run -it python:3.13

仮想環境

python3.13 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

将来(Python 3.14 以降)

JIT の本格化

  • Copy-and-Patch の発展
  • 50%+ の高速化期待

Free-Threaded の安定化

  • 2026-2027 年にデフォルト化
  • 段階的な GIL 廃止

型システム

  • PEP 764 Inlined TypedDict
  • さらなる静的型強化

競合・代替

CPython(本家)

  • 最も広く使われる

PyPy

  • JIT 搭載
  • Python 3.10 互換
  • 2-10 倍高速

Pyston

  • 性能重視
  • 一部互換性

Mojo(Modular)

  • Python + LLVM
  • AI 特化
  • 別言語だが Python 互換

関連用語

  • CPython、PyPy
  • GIL(Global Interpreter Lock)
  • JIT コンパイラ
  • Type Hints
  • Python 3.12、3.14
この記事について
カテゴリーソフトウェア
難易度中級
作成日2026/4/11