使い方
print
:コマンドプロンプトに出力する。self.report
:オペレーターから情報を出力する- PyDev.Debugger / VSCode
参考:
アドオンをデバッグする | はじめての Blender 2.7 アドオン開発
How can I debug a script in real-time? – Blender Stack Exchange
print 関数
ドキュメント:
print | Python 3.x Documentation [Official]
ロガー (logging)
ドキュメント:
logging – Logging Facility | Python 3.x Documentation [Official]
VSCode でデバッグする
- debugpy を使う。
手順
- Blender 付属の Python 環境に「debugpy」をインストールする。
- アドオンフォルダを VSCode で開き、プロジェクト用にデバッグ環境 (
.vscode/launch.json
) を設定する。 - アドオンの初期化スクリプトでリモートデバッグサーバーを起動する。
デバッグ環境
- VSCode でプロジェクトを開き、左端のアクティビティバーで「実行とデバッグ」ビューに切り替える。(
Ctrl
+Shift
+D
キー) - 環境を設定していない場合は、「launch.json ファイルを作成します」というリンクをクリックして プロジェクト用にデバッグ環境設定ファイル (
launch.json
) を作成する。作成済みの場合は、歯車アイコン から設定ファイルを開ける。 - 設定ファイルに次のような内容を記述する。
{
"version": "0.2.0",
"configurations": [
{
"name": "Blender",
"type": "python",
"request": "attach",
"connect": {
"host": "localhost",
"port": 5678
},
"pathMappings": [
{
"localRoot": "${workspaceFolder}",
"remoteRoot": "${workspaceFolder}"
}
],
"justMyCode": true
}
]
}
Code language: JSON / JSON with Comments (json)
リモートデバッグサーバー
アドオンの初期化スクリプト __init__.py
にリモートデバッグサーバーを起動するコードを追加する。register
関数で debugpy
モジュールをインポートし、debugpy.listen
メソッドを呼び出す。
def register():
try:
import debugpy
debugpy.listen(('localhost', 5678))
print("Waiting for debugger attach")
except ImportError:
pass
# ...
Code language: Python (python)
注意事項
sys.settrace
とリモートデバッグは併用できないため注意する。
ドキュメント:
Debugging | Visual Studio Code [Official]
Using debugby in Visual Studio Code – FAQ – debugpy Wiki – GitHub
listen – API Reference – debugpy Wiki – GitHub
リポジトリ:
microsoft/debugpy: An Implementation of the Debug Adapter Protocol for Python – GitHub
参考:
アドオンをデバッグする | はじめての Blender アドオン開発
Remote attach – Breakpoint in file that does not exist · Issue #318 · microsoft/debugpy – GitHub
Visual Studio でデバッグする
ドキュメント:
Visual Studio – Debugging Python | Blender Developer Wiki [Official]
Linux 上の Python コードをリモートデバッグする | Microsoft Docs [Official]
参考:
Trouble debugging Blender Python using Visual Studio 2019 – Stack Overflow
Eclipse でデバッグする
ドキュメント:
Debugging Blender from Eclipse | Blender Developer Wiki [Official]
参考:
アドオンをデバッグする | はじめての Blender 2.7 アドオン開発
Python, Blender and a Bit of Debuggery | Dani Epstein
Eclipse for debugging python in Blender – Blender Artists Community
debug and step through addon? – Blender Stack Exchange
PyCharm でデバッグする
ドキュメント:
Debugging Python Code with PyCharm | Blender Developers Blog [Official]
Python Remote Debug with PyCharm | PyCharm Blog [Official]
参考:
PyCharm remote debugger – Blender Stack Exchange
PyDev.Debugger (pydevd)
リポジトリ:
fabioz/PyDev.Debugger: Sources for the Debugger Used in PyDev, PyCharm and VSCode Python – GitHub
入手:
debugpy
Blender の Python 環境にインストールする。Blender を起動し、Python コンソールで次のコードを実行する。
>>> import subprocess, sys; print(subprocess.run([sys.executable, "-m", "pip", "install", "debugpy"], stdout=subprocess.PIPE, text=True).stdout)
リポジトリ:
microsoft/debugpy: An Implementation of the Debug Adapter Protocol for Python – GitHub
入手:
参考:
Blender 用 Python コードを VSCode で書くための環境構築メモ | ao;eth
ptvsd
**DEPRECATED**
後継の「debugpy」を使用する。
リポジトリ:
microsoft/ptvsd: Python Debugger Package for Use with Visual Studio and Visual Studio Code – GitHub
入手:
Blender Debugger for VSCode
動画:
How to Remote Debug Blender with VSCode
リポジトリ:
Python Debugger
リポジトリ:
参考:
Debugging Blender Add-ons | Hextant Studios
pdb
ドキュメント:
pdb – Python デバッガ | Python 3.x ドキュメント [公式]
参考:
Can I run a Python script step by step in Blender? – Blender Stack Exchange
Remote Debugger (Sybren A. Stüvel)
コード:
remote_debugger.py – sybrenstuvel/random-blender-addons – GitHub