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里调试的截图. 

 

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