Inkscape 1.0 插件(5) 用VSCODE / Visual studio2019 調試python插件

前面講過的內容最終都要用self.msg調試, 顯然不省事, 習慣用IDE指變量名就看到內容的時代, 這方法太慢了.

經過一番探索, 終於找到了簡單方法, 其實就是以前我們調試c++  dll動態庫的辦法 :  附加到進程 (不知這次面對ink插件爲啥遲遲沒想到這個辦法 , 饒了彎路)

具體做法是:

1. 在插件裏寫窗體(或者消息框) 讓程序停下來等待輸入 ,  比如我的前一篇 https://blog.csdn.net/majian/article/details/106851866 用Qt窗體. 

2. 用vscode打開插件的源碼py文件, 在窗體後的代碼位置設個斷點. 比如我想看輸入的x值, 下圖22行設斷點:

3. 打開inkscape, 調用插件, 當對話框彈出時,   這時 inkscape已經調用了python進程 , 在"任務管理器"裏能看到python進程的id

4. 在窗體裏輸入一個值, 比如 x=12

5.  回到 vscode界面,  點擊右側界面的"運行" ctrl+shift+D 

6. 如果上圖出現的不是 "運行和調試" 按鈕,   那就說明你已經有 launch.json , 點擊 齒輪按鈕 "打開launch.json", 找到其路徑,刪除該文件,  在我電腦裏 該文件在 D:\Inkscape\share\inkscape\extensions\.vscode  目錄裏,  刪除後回到vscode界面, 就看到步驟5的界面出現  "運行和調試" 按鈕

7.  點擊 "運行和調試" 按鈕,  選擇: Attach using process ID

8. 選擇 pythonw.exe (  我在前面的筆記裏已說過修改 python 解釋器爲 自己安裝目錄的 pythonw.exe  )

 9. 好了, 附加成功, 斷點也設置好了, 現在回到Inkscape界面, 點擊pushbutton 讓程序繼續往下走, 當運行到斷點處時, 就可以看到x的數值爲12了. 

10. 有時附加進程沒有成功, 在vscode裏出現"Time Out waiting "的提示, 需要多試幾次

11. 更好的方法是用visual studio 2019打開py文件,  F9設置斷點, 用  主菜單->調試->附加到進程  調試, 每次都能準確停留在斷點裏.  所以是時候考慮用vs2019寫python代碼了.  老牌軟件在調試方面的功底不容小覷, 你大爺還是你大爺.  下圖是在vs2019裏調試的截圖. 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章