pyOxidizerを試しててみました

以下のページを参考にしてpyOxidizerを試してみました。 PyOxidizer を試してみた - Qiita

python環境を持ち運ぶ(repl)として使うとか、アプリをpythonをインストールしていない環境で実行するなど使い道はありそうです。

環境

macOS Mojave 10.14.5

事前準備

rust環境をインストールする必要があります。 homebrewでインストールした場合pyOxidizerに必要なモジュールがインストールされないので、rustセットアップシェルを実行しました。

$ curl https://sh.rustup.rs -sSf | sh

アプリ環境作成

$ pyoxidizer init pyapp

pythonファイル作成

パッケージのルートディレクトに作成します。

$ cat helloworld.py
print("hello world")

設定ファイル()編集

$ cat pyoxidizer.toml
# Package .py files discovered in a local directory.
[[packaging_rule]]
type = "package-root"
path = "."
packages = ["helloworld"]

[[embedded_python_run]]
# Run an interactive Python interpreter.
#mode = "repl"     <-- init時にはここが有効になっています 

# Import a Python module and run it.
mode = "module"
module = "helloworld"
#module = "mypackage.__main__"

ビルド & 実行

$  pyoxidizer build
$  pyoxidizer run
packaging application into /.../pyapp/build/apps/pyapp/debug
purging /.../pyapp/build/apps/pyapp/debug
copying /.../pyapp/build/target/x86_64-apple-darwin/debug/pyapp to /.../pyapp/build/apps/pyapp/debug/pyapp
resolving packaging state...
pyapp packaged into /.../pyapp/build/apps/pyapp/debug
hello world

ファイルサイズは約27M。

$ ls -l build/target/x86_64-apple-darwin/debug/pyapp
-rwxr-xr-x  2 unokun  staff  27291660  7 14 09:23 build/target/x86_64-apple-darwin/debug/pyapp

リンク