GraalVM Pythonランタイム

GraalVMでは、Python 3.8準拠のランタイムが提供されます。GraalVM Pythonランタイムの主な目標は、SciPyおよびそれを構成するライブラリをサポートすることと、充実したPythonエコシステムの他のデータ・サイエンスおよび機械学習ライブラリと連携することです。現時点では、Pythonランタイムは実験のために使用したり、関心があるエンドユーザーが使用できます。この実装に関するよくある質問については、FAQを参照してください。

Pythonのインストール

Pythonランタイムはデフォルトでは提供されず、GraalVMアップデータ (gu)ツールを使用してGraalVMに追加できます:

gu install python

前述のコマンドによってカタログからPythonがインストールされます。

Pythonの実行

GraalVMのPythonサポートは、Python 3.8との互換性をターゲットにしています。サポートにはまだ制限がありますが、graalpyランチャを使用して単純なPythonコマンドまたはプログラムを実行できます:

graalpy [options] [-c cmd | filename]

プログラム・ファイルまたはコマンドを指定しない場合は、単純なREPLに入ります。

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

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

サポートされているパッケージのインストール

GraalVM Pythonランタイムには、GraalVMのPythonランタイムである程度動作することがわかっている少数のパッケージをインストールするために使用できるginstallというツールが付属しています。常に、標準のPythonモジュールvenvを使用して最初に仮想環境を作成することをお薦めします。このような環境を作成すると、CPythonのシステム・インストールを使用してインストールされている可能性があるローカル・ユーザーのパッケージとの互換性のない相互作用が回避されます:

graalpy -m venv my_new_venv
source my_new_venv/bin/activate

インストール可能なパッケージのリストを表示するには、次を実行します:

graalpy -m ginstall install --help

これにより、インストール可能なパッケージのカンマ区切りリストを含む短いヘルプ・ドキュメントが出力されます。インストールは、そのヘルプ・ドキュメントに記載されているように動作します:

graalpy -m ginstall install pandas

GraalVMでJava、ポリグロット・シェルまたは別の言語からPythonをコールする場合は、インストールしたパッケージを使用できるようにするために、常にPythonコードを最初に評価する必要があります:

import site

詳細は、「サポートされているパッケージのインストール」ガイドを続けて参照してください。

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

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