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で実行するように指示されます。したがって、起動時間が長くなります。