Blender 4.2 からアドオン作成方法が変更されました。
変更内容に「Use wheels to pack your external Python dependencies.」とあり
外部のモジュールを同行する場合は、wheels を使う必要がある。
ざっくりとですが同梱方法についてまとめました。
下記のサイトを参考に書き出しています。
Add-ons(アドオン)
Python Wheels
検証環境
Tool | バージョン |
---|---|
Mac | Mac Sequoia (15.1.1) |
Blender | 4.2 |
必須条件
パッケージに含むことができるモジュールの条件
ざっくり翻
- Wheels は Python's package index (PyPI) から変更せずにバンドルする
- Wheels は依存関係を含んいる
- Wheels のファイル名はPythonのバイナリ配布の仕様と一致している
※PyPI からダウンロードされた Wheels は、この規約に従っている
参考:パッケージ名の命名規則 - manifest ファイル(blender_manifest.toml)に記載する場合
パスの区切り文字は「/
」スラッシュを使用する
Wheels ファイルを取得
pip を使ってWheelsファイル(*.whl)を取得する
取得したファイルは「wheels
」ディクトリ内に保存する
ディレクトリ名の「wheels
」は通例として使用されている
ディレクトリ構成
下記の通りに Wheels ファイルを配置する
addon
├─ wheels
│ └─ module.whl
├─ __init__.py
└─ blender_manifest.toml
ファイルを取得
Wheels ファイルの取得方法を2種類ある
例:numpy を取得
その1
pip wheel numpy -w ./wheels
pip を実行した環境に適した Wheels ファイルがダウンロードされる
上記のコマンドを下記のファイルがダウンロードされる
- numpy-2.2.1-cp311-cp311-macosx_14_0_arm64.whl
検証環境の Mac で実行できるファイルがダウンロードされた
その2
pip download numpy --dest ./wheels --only-binary=:all: --python-version=3.11 --platform=macosx_11_0_arm64
pip download numpy --dest ./wheels --only-binary=:all: --python-version=3.11 --platform=win_amd64
pip を実行した環境に依存せず、任意の環境向けの Wheels ファイルをダウンロードできる
上記のコマンドを実行すると下記のファイルを取得できる
- numpy-2.2.1-cp311-cp311-macosx_11_0_arm64.whl
- numpy-2.2.1-cp311-cp311-win_amd64.whl
対象のファイルが存在しない場合、エラーメッセージが表示される
下記のコマンドを実行すると linux 環境向けがないのでエラーが表示される
pip download numpy --dest ./wheels --only-binary=:all: --python-version=3.11 --platform=manylinux_2_28_x86_64
ERROR: Could not find a version that satisfies the requirement numpy (from versions: none)
ERROR: No matching distribution found for numpy
事前に PyPI サイトで確認する
PyPI
Manifest ファイルに追記
Manifest ファイル(blender_manifest.toml)にダウンロードした Wheels ファイルを相対パスで追記する
パスの区切りは「/
」を使用する
wheels = [
"./wheels/numpy-2.2.1-cp311-cp311-macosx_11_0_arm64.whl",
"./wheels/numpy-2.2.1-cp311-cp311-win_amd64.whl",
]
パッケージ生成 その1
従来通り Blender build を実行しパッケージを作成する
blender --command extension build
パッケージ生成 その2 ターゲットプラットフォーム
ターゲットプラットフォーム毎にパッケージを分けたい場合は
Manifest ファイルを書換え、Blendr build にオプションを追加する
Manifest ファイルの書換え
platforms にパラメーターを追記
platforms = ["windows-x64", "macos-arm64"]
他に用意されているパラメーター
- windows-arm64
- macos-x64
- linux-x64
Blendr build にオプションを追加
blender コマンドに「--split-platforms
」を追加する
blender --command extension build --split-platforms
実行後プラットフォーム毎にパッケージ(zip ファイル)が生成される
例:
プラットフォームに windows-x64, macos-arm64 を追記した場合
下記のファイルが生成される
- addon_with_Third_lib-0.1.0-windows_x64.zip
- addon_with_Third_lib-0.1.0-macos_arm64.zip
ファイル名の最後にプラットフォーム名が追加される