CPythonの代替としてのGraalPy

GraalPyランタイムの選択

GraalPyは、Python 3.10準拠のランタイムを提供します。主な目標は、PyTorch、SciPy、およびそれらを構成するライブラリをサポートすることと、充実したPythonエコシステムの他のデータ・サイエンスおよび機械学習ライブラリと連携することです。GraalPyは、事前にコンパイルされたネイティブ実行可能ファイルとして配布され、サイズがコンパクトです。

GraalPyには、次の機能があります:

GraalPyディストリビューション

GraalPyには、Oracle GraalVM上に構築されたGraalPyGraalPy Communityがあります。

GraalPyのOracleおよびCommunityディストリビューションには、次の2つの言語ランタイム・オプションがあります:

GraalPyの識別

4つのGraalPyランタイムは、一般的なパターンgraalpy(-community)(-jvm)-<version>-<os>-<arch>を使用して次のように識別されます:

  Oracle Community
ネイティブ graalpy-<version>-<os>-<arch> graalpy-community-<version>-<os>-<arch>
JVM graalpy-jvm-<version>-<os>-<arch> graalpy-community-jvm-<version>-<os>-<arch>

比較

ランタイム ネイティブ(デフォルト) JVM
起動時間 高速 低速
ピーク・パフォーマンスに達するまでの時間 高速 低速
ピーク・パフォーマンス(GCも考慮) 良好 最良
Java相互運用性 構成が必要 機能

GraalPyのインストール

Linux

LinuxにGraalPyをインストールする最も簡単な方法は、Pyenv (Pythonバージョン・マネージャ)を使用することです。Pyenvを使用してバージョン24.0.0をインストールするには、次のコマンドを実行します:

pyenv install graalpy-24.0.0
pyenv shell graalpy-24.0.0

pyenv installを実行する前に、pyenvを更新して最新のGraalPyバージョンを含める必要がある場合があります。

または、GitHubリリースから圧縮されたGraalPyインストール・ファイルをダウンロードできます。

  1. (プラットフォームに応じて)graalpy-XX.Y.Z-linux-amd64.tar.gzまたはgraalpy-XX.Y.Z-linux-aarch64.tar.gzのパターンに一致するダウンロードを見つけてダウンロードします。
  2. ファイルを解凍し、PATH環境変数を更新してgraalpy-XX.Y.Z-linux-amd64/bin(またはgraalpy-XX.Y.Z-linux-aarch64/bin)ディレクトリを含めます。

ノート: Oracle Linux 9では、GraalPyネイティブ・ランタイムに必要なlibxcryptライブラリを追加でインストールします(yum install libxcrypt-compat)。

macOS

macOSにGraalPyをインストールする最も簡単な方法は、Pyenv (Pythonバージョン・マネージャ)を使用することです。Pyenvを使用してバージョン24.0.0をインストールするには、次のコマンドを実行します:

pyenv install graalpy-24.0.0
pyenv shell graalpy-24.0.0

pyenv installを実行する前に、pyenvを更新して最新のGraalPyバージョンを含める必要がある場合があります。

または、GitHubリリースから圧縮されたGraalPyインストール・ファイルをダウンロードできます。

  1. (プラットフォームに応じて)graalpy-XX.Y.Z-macos-amd64.tar.gzまたはgraalpy-XX.Y.Z-macos-aarch64.tar.gzのパターンに一致するダウンロードを見つけてダウンロードします。
  2. 隔離属性を削除します。
     sudo xattr -r -d com.apple.quarantine /path/to/graalpy
    

    たとえば:

     sudo xattr -r -d com.apple.quarantine ~/.pyenv/versions/graalpy-24.0.0
    
  3. ファイルを解凍し、PATH環境変数を更新してgraalpy-XX.Y.Z-macos-amd64/bin(またはgraalpy-XX.Y.Z-macos-aarch64/bin)ディレクトリを含めます。

Windows

  1. パターンgraalpy-XX.Y.Z-windows-amd64.tar.gzと一致する圧縮されたGraalPyインストール・ファイルをGitHubリリースから検索してダウンロードします。
  2. ファイルを解凍し、PATH変数を更新してgraalpy-XX.Y.Z-windows-amd64/binディレクトリを含めます。

Windowsの制限

GraalPyのWindowsディストリビューションには、対応するLinuxまたはmacOSディストリビューションよりも多くの制限があるため、すべての機能およびパッケージを使用できるわけではありません。

次の既知の問題があります:

パッケージのインストール

GraalPyの最適な使用方法は、venv仮想環境から使用することです。これにより、ラッパー・スクリプトが生成され、標準のPythonインタプリタとしてシェルから実装を使用できるようになります。

  1. 次のコマンドを実行して、GraalPyで仮想環境を作成します:
     graalpy -m venv <venv-dir>
    

    たとえば:

     graalpy -m venv ~/.virtualenvs/graalpy-24.0.0
    
  2. シェル・セッションで環境をアクティブ化します:
     source <venv-dir>/bin/activate
    

    たとえば:

     source ~/.virtualenvs/graalpy-24.0.0/bin/activate
    

pythonpython3graalpyなどの複数の実行可能ファイルを仮想環境で使用できます。

ノート: Python環境を非アクティブ化する(およびシェルに戻る)には、deactivateを実行します。

pipパッケージ・インストーラは、仮想環境を使用している場合に使用できます。pipのGraalPy実装は、動作を改善するパッチを配布する場合、最新以外のパッケージ・バージョンを選択することがあります。