PyPy とは
PyPy は、Python の代替実装であり、高速な動作を特徴とする Python インタープリターです。特に JIT (Just-In-Time) コンパイラを搭載しており、長時間実行されるプログラムや計算量の多い処理で大幅な速度向上が期待できます。
公式サイト
https://pypy.org/
https://github.com/pypy/pypy

PyPy の名前の由来
PyPy という名前は “Python in Python” に由来しています。これは、PyPy 自体が Python で書かれていることを意味しています。
読み方は パイパイ になると思います。
PyPy のダウンロード
PyPy は公式サイト (https://www.pypy.org/) からダウンロードできます。提供されているバージョンは Python 2 と Python 3 の両方があり、プラットフォームごとに適したバージョンを選択可能です。

利用されている環境によっては Visual C ++ のランタイムが必要となる場合がありますので、リンクしているページからダウンロードしてインストールします。

PyPy のインストール方法
Windows の場合
- 公式サイトから Windows 用の zip ファイルをダウンロードします。
- 適当なフォルダに解凍します。
pypy.exe
を実行することで、PyPy の Python インタープリターを使用できます。
CPython との違い
比較項目 | CPython | PyPy |
---|---|---|
実装言語 | C | Python (RPython) |
実行速度 | 遅め | JIT により高速 |
互換性 | 公式 Python | 一部制限あり |
メモリ使用量 | 比較的多い | 少ないことが多い |
C 拡張モジュール | ほぼすべて利用可能 | 一部利用不可または制限あり |
CPython と PyPy の違いが分かるコード
以下のコードを CPython と PyPy で実行すると、PyPy の JIT の効果を確認できます。
import time def compute(): total = 0 for i in range(10**7): total += i % 2 return total start = time.time() result = compute() end = time.time() print(f"Result: {result}") print(f"Time taken: {end - start:.2f} seconds")
今回は、C:\pypy3.11-v7.3.19-win64 に pypy を解凍し、上記のテスト用のコードを C:\pypy3.11-v7.3.19-win64\test23.py と保存して実行しています。

実行結果
PS C:\pypy3.11-v7.3.19-win64> .\pypy.exe .\test23.py
Result: 5000000
Time taken: 0.02 seconds
PS C:\pypy3.11-v7.3.19-win64>
PS C:\pypy3.11-v7.3.19-win64> py.exe .\test23.py
Result: 5000000
Time taken: 1.50 seconds
PS C:\pypy3.11-v7.3.19-win64> py.exe --list-paths
-V:3.13 * C:\Users\user\AppData\Local\Programs\Python\Python313\python.exe
PS C:\pypy3.11-v7.3.19-win64>


この試した環境でこのコードだと、Cpython で 1.5 秒かかる処理が、PyPy だと 0.02 秒で完了することがわかります。