ソフトウェア
中級
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.10 | 2021 | match 文、Union 型 |
| Python 3.11 | 2022 | 25% 高速化、例外グループ |
| Python 3.12 | 2023 | PEP 695 型エイリアス、f-string 改良 |
| Python 3.13 | 2024 | No-GIL、JIT、新 REPL |
| Python 3.14 | 2025 予定 | 更なる 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