Blenderスクリプトの規模が大きくなってくると、そろそろデバッガを使いたくなってきます。
これまでBlenderスクリプトを作る時はself.report一筋でしたので、そろそろ限界を感じてきていました。
そこで Eclipse+PyDev を使って、Blenderスクリプト開発のデバッグ環境を構築してみました。
デバッグ環境構築
Eclipseのダウンロード
Eclipseのホームページから、最新版のEclipseをダウンロードします。
必要に応じてJava SEをインストールするように求められるかもしれませんが、その場合は指示に従ってインストールを行います。
※ PyDevは Java SEのバージョンが6以下では動作しません 。インストールされているJava SEのバージョンが6以下の場合は、以下のリンクからJavaの最新版を入手してください。
(参考:http://ameblo.jp/cubsuke/entry-11767899203.html)
PyDevのインストール
PyDevを以下の手順従ってインストールします。
-
Help
-Install New Software...
をクリック -
Available Software
ウィンドウのAdd...
をクリック -
Name
に PyDev 、Location
に http://pydev.org/updates を入力してOK
をクリック - しばらく経つと、
Available Software
ウィンドウにPyDev
が追加されるので選択した後、Contact all update sites during install to find required software
のチェックボックスを外し、Next >
をクリック
※ 注意:Contact all update sites during install to find required software
のチェックを外さないと、5.までに長い時間がかかってしまいます。
(参考:Stackoverflow) -
Install Details
ウィンドウのNext >
をクリック -
Review Licenses
ウィンドウでライセンスに同意した後、Finish
をクリック - PyDevがインストールされるので、インストール後に Eclipseを再起動
デバッグ実行の準備
デバッグ用プロジェクトの作成
デバッグ実行のためのプロジェクトを作成します。
Eclipseプロジェクトの作成
-
File
-New
-Project...
をクリック -
Select a wizard
ウィンドウから、PyDev
-PyDev Project
を選択し、Next >
をクリック -
Project name
に適当な名前をつけた後、Next >
をクリック -
Finish
をクリック
Blenderのパスを設定
-
Project
-Properties
クリック - 左のメニューから
PyDev - PYTHONPATH
を選択 -
External Libraries
を選択 -
Add source folder
を選択し、以下のパスを追加
- (Blenderスクリプトのパス)/addons
- (Blenderスクリプトのパス)/addons/modules
- (Blenderスクリプトのパス)/modules
- (Blenderスクリプトのパス)/startup
- 必要に応じて個人用の作業ディレクトリ
デバッグの為のソース修正
デバッグサーバへ接続するソースの作成
PyDevデバッグサーバへ接続するためのソースを作成します。
作成したソースは、デバッグするBlenderスクリプトと同じディレクトリに置いてください。
import sys
DEBUGGING = True
def start_debug():
if DEBUGGING is True:
PYDEV_SRC_DIR = "(eclipseディレクトリへのパス)/plugins/org.python.pydev_XXXXX/pysrc" # 環境に応じて書き換えが必要
if PYDEV_SRC_DIR not in sys.path:
sys.path.append(PYDEV_SRC_DIR)
import pydevd
pydevd.settrace()
print("started blender script debugging...")
デバッグ対象のBlenderスクリプトの修正
デバッグを開始するために、デバッグ対象のスクリプトで デバッグを開始する場所 に start_debug()
を追加します。
例えば、スクリプト実行開始直後にデバッグを開始したい場合は以下のようにします。
from . import debug
if __name__ == "__main__":
debug.startdebug()
PyDevデバッグサーバの起動
EclipseにBlenderを登録
Eclipseの外部ツールにBlenderを追加します。
追加の方法を以下に示します。
-
Run
-External Tools
-External Tools Configurations...
をクリック - 左メニューから、
Program
をダブルクリック -
Main
タブを選択し、Location
にBlenderの実行ファイル、Working Directory
に Blenderの実行ファイルが置かれたディレクトリ を入力
Name
には自分の好きな名前を入力(ここでは、 New_Configuration とする) -
Apply
をクリック
デバッグサーバの起動
PyDevデバッグサーバを起動します。
起動の手順を以下に示します。
-
Window
-Open Perspective
-Other...
をクリック -
Debug
を選択し、Debugパースペクティブを開く -
Pydev
-Start Debug Server
をクリックし、サーバを起動
デバッグ実行
Blenderの起動
以下の手順に従って、EclipseからBlenderを起動します。
-
Run
-External Tools
- New_Configuration をクリック - Blenderが起動
デバッグの実行画面
ここまでの説明をもとに、Blenderのスクリプトを作成してデバッグしてみました。
このような感じで、デバッグを開始した時点でEclipseを用いてデバッグを進めることが出来ます。
最後に
いつかはやろうと思っていたBlenderとデバッガとの連携ですが、特にハマるところ無く無事に連携できました。
デバッガを使うことで self.reportデバッグに比べて開発効率が格段に向上するので、ぜひ利用してみてはいかがでしょうか。