🔖
Blender で機械学習環境をセットアップするメモ
背景
機械学習関連の処理をして Blender とつなぎたい(処理結果を Blender で可視化とか)
Blender 単体では pytorch とか入ってない.
なるべくお手軽 + Linux と Windows で手順を統一したい.
方法
- conda とかで環境作って Blender の python 環境に上書き(bpy 削除)
- https://stackoverflow.com/questions/70639689/how-to-use-the-anaconda-environment-on-blender
- => Python 自体のビルド構成が違うためか, 不都合があったりする模様(tkinter が動かないとか)
- Blender 環境で pip でパッケージ入れる
- RPC とかで Blender の Python 環境と, 別途の Python 環境でうまく通信する.
とりあえずは Blender のローカルインストール(zip) + 2. で pip でパッケージ入れて環境構築が楽でしょう.
再現性高めるなら requirements.txt
を用意して.
Windows の例
エクスプローラーで Blender の python.exe がある場所へ行き(e.g. D:\local\blender-4.1.1-windows-x64\blender-4.1.1-windows-x64\4.1\python\bin
), cmd で pip 実行で OK
> python.exe -m pip install pytorch
さらなる高みへ
rpyc で Python でそこそこお手軽にリモートで Python 動かしたり分散処理するメモ
で, RPC で処理させるのがよいでしょうか...
(より汎用的にするには, 小規模シーンデータであれば bpy.data を毎回転送させてもいけるか?. もしくはソースコードを転送させて, Blender python 側で eval させるとか)
失敗: Streamlit 連携
Blender の Python console から
import streamlit.web.cli as stcli
import sys
sys.argv=["streamlit", "run", "main.py", "--global.developmentMode=false"]
sys.exit(stcli.main())
で streamlit は動きますが, しかし Blender 側に制御が戻らないので Blender がフリーズしてしまいます.
Discussion