Python のスタンドアロンアプリケーション

GraalPy を使用すると、外部依存関係なしで、ネイティブアプリケーションや JAR ファイルとして Python アプリケーションやライブラリを作成できます。 GraalPy の基盤となっている Truffle フレームワーク と、GraalPy が Python のネイティブ拡張機能の管理実行に利用する Sulong LLVM ランタイム が組み合わされ、標準ライブラリやインストール済みパッケージへのものも含め、すべてのファイルシステムアクセスが完全に仮想化されます。

GraalPy には、Linux、macOS、および Windows で Python バイナリを作成するための standalone という名前のモジュールが含まれています。このモジュールは、アプリケーションのすべてのリソースを 1 つのファイルにまとめます。

前提条件: バージョン 23.1.0 以降の GraalPy ディストリビューション。 GraalPy リリース を参照してください。

たとえば、my_script.py という名前の Python ファイルからネイティブ実行ファイルを作成し、my_venv という名前の仮想環境にインストールされているパッケージを作成する場合は、次のコマンドを実行します。

graalpy -m standalone native \
      --module my_script.py \
      --output my_binary \
      --venv my_env

Python コード、GraalPy ランタイム、および Python 標準ライブラリをすべて 1 つの独立した実行可能ファイルに含むネイティブの my_binary ファイルが生成されます。他のオプションについては graalpy -m standalone native --help を使用してください。

セキュリティ上の考慮事項 #

Python コードを含むネイティブ実行ファイルまたは JAR ファイルを作成するのは、軽度の難読化の一種と見なされる可能性がありますが、ソースコードは保護されません。 Python ソースコードはそのままの実行ファイルに格納されません (GraalPy バイトコードのみが格納されます)。しかし、バイトコードは Python ソースコードに簡単に変換できます。

つながる