LoginSignup
1
1

BlenderのPython開発における仮想環境の構築方法

Posted at

概要

BlenderのPython APIを使った開発において、Blender内臓のpipを用いてインストールを行うことで外部ライブラリも利用することができます。

しかし、プロジェクトごとにパッケージを管理したい場合や、fake-bpy-module をインストールしてコード補完を利用する場合などは仮想環境でパッケージの管理を行いたいところです。

ここではBlenderのPython API開発での仮想環境の使い方を紹介します。

動作環境

ここでは以下の環境で動作確認を行っています。

  • Windows 11
  • Blender 4.0.1

仮想環境の作成

Blenderのプロジェクトファイル .blend が保存されているディレクトリをプロジェクトディレクトリとして、以下のような構成で仮想環境を作成します。

📂 (project_directory)
 ├─📂 .venv
 ├─📄 hoge_project.blend
 └─📄 hoge_script.py

下記のコマンドによりBlender内臓のPythonから venv による仮想環境を作成します。

PowerShell
& "C:\Program Files\Blender Foundation\Blender 4.0\4.0\python\bin\python.exe" -m venv .venv
.\.venv\Scripts\activate

ここでは外部ライブラリの一例として numpy をインストールしてみます。

PowerShell
pip install numpy

Pythonスクリプト

外部ライブラリを呼び出すPythonスクリプトは以下のように記述します。

hoge_script.py
import pathlib
import sys

import bpy

# プロジェクトファイル(.blend)のディレクトリを取得
project_dir = pathlib.Path(bpy.path.abspath("//"))

# 仮想環境の site-packages ディレクトリを指定
site_packages_dir = project_dir.joinpath(".venv", "Lib", "site-packages")

# site-packages ディレクトリをPATHに追加し、外部ライブラリを検索対象に追加
sys.path.append(str(site_packages_dir.resolve()))

# PATH追加後に外部ライブラリのインポートが可能になる
import numpy as np

# 外部ライブラリの呼び出し確認
print("numpy version:", np.__version__)

Pythonスクリプトの実行方法は通常通りで、BlenderのGUI上や下記のコマンドで起動します。

PowerShell
& "C:\Program Files\Blender Foundation\Blender 4.0\blender.exe" -b hoge_project.blend -P hoge_script.py

以下のように正常に numpy のインポートが通っていることが確認できます。

標準出力
Blender 4.0.1 (hash d0dd92834a08 built 2023-11-17 00:36:52)

~~~中略~~~

numpy version: 1.23.5

Blender quit

補足: fake-bpy-module の仮想環境へのインストール方法

VSCodeでPythonスクリプトをコーディングする際に、bpy モジュールのコード補完を有効にするために fake-bpy-module が利用できます。

pipからインストール可能なので、上述と同様で下記のコマンドによりインストールします。

PowerShell
.\.venv\Scripts\activate
pip install fake-bpy-module-4.0

仮想環境をアクティベートした状態で下記のコマンドにより、仮想環境を認識した状態のVSCodeが起動します。

PowerShell
code .

bpy モジュールのコード補完が有効化されていることが確認できます。

コード補完

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1