blender斷點調(diào)試python腳本
操作視頻見 https://www.bilibili.com/video/BV12u411G72s/?spm_id_from=333.999.0.0
用vscode斷點調(diào)試blender的python腳本和插件(同樣適用于其他用python腳本的軟件),需要裝一個微軟的python遠程調(diào)試包debugpy(https://github.com/microsoft/debugpy)。方法很簡單,pip install debugpy即可。因為blender用的python并不是系統(tǒng)python,需要裝到blender的python下,找到blender下的python.exe(在<blender根目錄>/<版本號>/python/bin下),執(zhí)行 python -m pip install debugpy即可。
遠程調(diào)試需要被調(diào)試的python程序開啟調(diào)試監(jiān)聽,以及配置調(diào)試器連接端口。
可以在被調(diào)試程序開頭加入以下代碼即可開啟監(jiān)聽,listen的參數(shù)是調(diào)試端口號,vscode調(diào)試默認用5678端口。另外參數(shù)也可以寫成("<ip>", <端口號>),如("0.0.0.0", 5678),對調(diào)試器的ip增加限制。
開啟listen之后程序會繼續(xù)走,不等待調(diào)試器接入,如果希望調(diào)試器能第一時間打到斷點,則需要增加 debugpy.wait_for_client(),這樣被調(diào)試的程序會阻塞直到調(diào)試器接入才繼續(xù)執(zhí)行。
上述做法會修改被調(diào)試的源程序,更好的做法是修改python啟動參數(shù),可以無需修改源代碼
python -m debugpy --listen <端口號> <--wait-for-client> xxx.py
vscode調(diào)試器配置文件是launch.json,根據(jù)模板增加一個python remote attach項,默認生成如下
為了能找到對應(yīng)python文件命中斷點,localRoot項需要改成被調(diào)試進程的工作目錄,例如啟動blender時工作目錄為blender安裝根目錄,那就把根目錄拷貝到localRoot項,如
要斷點調(diào)試blender的python腳本,只要blender啟動時開啟調(diào)試監(jiān)聽即可。有很多方法可以做到,我最推薦的是用blender啟動參數(shù)。blender啟動參數(shù)有--python-expr配置,可以在啟動時運行一段python表達式,所以加上--python-expr "import debugpy;debugpy.listen(5678)"即可??梢园褑訁?shù)加到快捷方式,這樣就不用每次輸入?yún)?shù),每次用這個快捷方式啟動blender都能接入python調(diào)試器了

下圖演示在卸載插件邏輯處成功命中斷點,非常方便
