プリントデバッグ

Blenderのaddonはpythonで書くのですが、開発時にプリントデバッグができないのが難点です。

エラーメッセージはinfo windowに表示されますが、プリント結果は見ることが出来ません。

workaround 1: ターミナルから起動

blenderをターミナルから起動することで、標準出力がターミナル上に出力されます。

デメリットは、めんどくさいことですね。

workaround 2: ログファイルを吐く

ターミナルから毎回起動するのはめんどくさいので、プロジェクトファイルと同じディレクトリにログファイルを吐くようにしています。

これは、__init__.pyに以下を記述することで可能です。(必要なところだけを記述しています。)

import bpy
import logging


logger = logging.getLogger()
file_handler = logging.FileHandler(
    "hogehoge.log", mode="w")
formatter = logging.Formatter(
    fmt="[%(asctime)s] %(levelname)s [%(name)s/%(funcName)s() at line %(lineno)d]: %(message)s", datefmt="%Y-%m-%d %H:%M:%S")
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
logger.setLevel(logging.DEBUG)



class HogeHoge(bpy.types.Operator):

    def execute(self, context):
        logger.debug("hogehoge")
        return {"FINISHED"}

再起動タイミング

__init__.py上で他のpythonファイルを読み込んでいる場合、blenderの起動時にコンパイルされ*.pycが生成されます。

したがって__init__.pyで読み込まれているコードを修正した場合、addonを削除 → 再インストール しても変更が反映されません。

  1. addonを削除
  2. blenderを再起動
  3. addon(修正済み)をインストール

という手順を踏む必要があります。

関連記事

5月分のBanggoodクーポン Mi Pad 4 Plusもあるよ

Kindle Cloud Readerで洋書を読む時にgoogle翻訳を使う

シグマのフルサイズ超広角Artレンズを買った

numpyで3次元座標インデックスの配列を作る方法

300ドル15W中華半導体レーザーカッター買った その5

deep learningフレームワーク・ライブラリをGPU環境のwindows10にインストールする方法と応用まとめ

コメント

コメントを返信する

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です