2-3. PyPy のインストール

本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

PyPy とは

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

公式サイト
https://pypy.org/
https://github.com/pypy/pypy

PyPy 公式サイト

PyPy の名前の由来

PyPy という名前は “Python in Python” に由来しています。これは、PyPy 自体が Python で書かれていることを意味しています。
読み方は パイパイ になると思います。

PyPy のダウンロード

PyPy は公式サイト (https://www.pypy.org/) からダウンロードできます。提供されているバージョンは Python 2 と Python 3 の両方があり、プラットフォームごとに適したバージョンを選択可能です。

PyPY ダウンロードページ

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

Microsoft Vifual C++ 2015 ランタイムダウンロードページ

PyPy のインストール方法

Windows の場合

  1. 公式サイトから Windows 用の zip ファイルをダウンロードします。
  2. 適当なフォルダに解凍します。
  3. pypy.exe を実行することで、PyPy の Python インタープリターを使用できます。

CPython との違い

比較項目CPythonPyPy
実装言語CPython (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 と保存して実行しています。

テスト用の Python スクリプト

実行結果

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 秒で完了することがわかります。