GraalVM Pythonランタイム

GraalPyは、Python 3.10準拠のランタイムを提供します。主な目標は、PyTorch、SciPy、およびそれらを構成するライブラリをサポートすることと、充実したPythonエコシステムの他のデータ・サイエンスおよび機械学習ライブラリと連携することです。GraalPyは通常、純粋なPythonコードをCPythonより高速に実行でき、C拡張が関係する場合はCPythonのパフォーマンスにほぼ匹敵します。多くのワークロードは正常に実行されますが、外部パッケージを使用するPythonプログラムでは、サポートされていない問題が発生する可能性があります。現時点では、Pythonの実装は、試験的使用や関心があるエンドユーザーによる使用が可能です。この実装に関するよくある質問については、FAQを参照してください。

GraalPyのインストール

LinuxおよびmacOS

LinuxおよびmacOSプラットフォームにGraalPyをインストールする最も簡単な方法は、Pythonバージョン・マネージャーであるpyenvを使用することです。たとえば、バージョン22.3.0をインストールするには、次のコマンドを実行します:

pyenv install graalpy-22.3.0
pyenv shell graalpy-22.3.0

もう1つのオプションは、Conda-Forgeを使用することです。最新バージョンのGraalPyの環境を取得するには、次のコマンドを使用します:

conda create -c conda-forge -n graalpy graalpy

または、プラットフォームに適した圧縮GraalPyインストール・ファイルをダウンロードします。たとえば、Linuxの場合は、graalpy-XX.Y.Z-linux-amd64.tar.gzのパターンに一致するファイルをダウンロードします。ファイルを解凍し、必要に応じてPATH変数を更新します。macOS Catalina以降を使用している場合は、隔離属性を削除する必要があります。これを行うには、次のコマンドを実行します。

sudo xattr -r -d com.apple.quarantine /path/to/GRAALPY_HOME

Java埋込みのサポートおよび他の言語との相互運用性を含む完全なGraalVMでGraalPyを試すには、www.graalvm.orgのバンドル・リリースを使用できます。

Windows

現在、Windows用のインストーラはありません。かわりに、これらの手順に従ってソースからGraalPyをビルドします。

Pythonの実行

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

graalpy -m venv <venv-dir>

シェル・セッションで環境をアクティブ化するには、次を実行します:

source <venv-dir>/bin/activate

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

graalpyランチャを使用して、単純なPythonコマンドまたはプログラムを実行できます:

graalpy [options] [-c cmd | filename]

たとえば、コマンドgraalpyを使用してコマンドラインからPython対話型シェルを起動し、Pythonシェル・プロンプト(>>>で識別)で次の行を入力し、続いてCRを入力します。

>>> print("Hello World!")

出力が直接表示され、その後にPython対話型シェル・プロンプトが表示されます

Hello World!
>>>

または、Pythonスクリプトを起動できます。次の内容をhelloworld.pyという名前のファイルにコピーします:

print("Hello World!")

graalpyを起動し、ファイル名を引数として渡します:

graalpy helloworld.py

次の出力が表示されます

Hello World!

Pythonオプション

GraalPyでは、Python 3.10と同じオプションの一部に加えて、基礎となるPythonランタイム、GraalVMのツールおよび実行エンジンを制御するための追加オプションがサポートされています。これらは、次のコマンドを使用して表示できます:

graalpy --help --help:tools --help:languages

ネイティブ・イメージおよびJVMランタイム

デフォルトでは、GraalVMは、ネイティブ・イメージを使用して事前にコンパイルされたバイナリからGraalPyを実行するため、起動時間が短縮され、フットプリントが小さくなります。事前にコンパイルされたバイナリにはPythonおよびLLVMインタプリタが含まれていますが、他の言語と相互運用するには、--jvmオプションを指定する必要があります。これにより、ランチャは、ネイティブ・イメージモードではなくJVMで実行するように指示されます。したがって、起動時間が長くなります。