vscode应用的好,真的不比免费软件差。vscode的代码提醒曾经很好了,debug性能也不差。
前提
本文默认PC中曾经装置python3、vscode,微软提供的python插件和Python Extension Pack。
调试代码
咱们应用如何创立一个超时后不会被kill的python子过程中的代码来进行调试
import subprocessfrom subprocess import TimeoutExpiredif __name__ == '__main__': try: proc=subprocess.Popen('adb install -g -r -t ~/tmp/app-uiautomator.apk', shell=True, text=True, stdout=subprocess.PIPE)stdout,errs = proc.communicate(timeout=60) print(f'stdout1:\n{stdout}') except TimeoutExpired as te: print('timeout') stdout,errs = proc.communicate() print(f'stdout2:\n{stdout}')
调试设置
关上vscode后,应用快捷键shift+command+p后输出setting
关上设置页面,如没有以下配置,请退出以下配置
configurations里的代码
{ "name":"Python: Current File (Integrated Terminal)", "type":"python", "request":"launch", "program":"${file}", "console":"integratedTerminal"}
解释其中要害的配置选项:
- name 呈现在调试下拉菜单中的名字
- type 调试类型
* request 执行调试的模式,可选luanch和attch其中之一 - program 填写须要调试的文件的全门路名字,${file}代表以后关上的文件
增加后就能够调试以后关上的python文件了。
传递代码运行参数
减少args 配置即可
{ "name":"Python: Current File (Integrated Terminal)_args", "type":"python", "request":"launch", "program":"${file}", "console":"integratedTerminal", "args":[ "--port", "1593" ]}
从新执行后,能够在控制台看到咱们在settings.json中增加的--port和1593参数被打印输出了。
attach形式调试
如果参数常常须要变动,把参数写死在配置文件里有时也不太不便,咱们能够应用attach模式来进行调试。
装置debugpy
pip3 install debugpy
setting.json配置增加
{ "name":"Python: Attach", "type":"python", "request":"attach", "connect":{ "host":"localhost", "port":5678 }}
在命令行执行程序
python3 -m debugpy --listen 5678 --wait-for-client test_subprocess.py
在vscode中执行python attach
attach胜利后,跳过中断点后,就能在控制台里看到输入日志了。
参考文档
- Python debugging in VS Code
后语
如果大家喜爱我写的文章,欢送大家点赞、珍藏、评论留言或者私信与我交换。