背景
VSCode的用戶通常在調試Python程序時設置完斷點直接按F5鍵便可以開始調試,而有時代碼需要從外部獲得一些參數來運行,因此在調試需要外部參數的Python程序時,做法要比之前稍微復雜一點。接下來,記錄兩種使用VSCode可視化調試帶參數的Python程序的方法。
方法
方法一:將參數直接寫入到launch.json文件中
如圖,點擊VSCode菜單欄中的運行,再點擊打開配置。
在彈出的launch.json文件中,找到一個名叫"configurations"的參數,大致的形式為:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: 當前文件",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
}
}
加入一個"args"參數,寫入要傳給執行文件的參數。例子中寫入兩個參數"arg1"與"arg2",值分別為"xxx"與"xxx"。
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: 當前文件"
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"args": [
"arg1", "xxx",
"arg2", "xxx",
]
}
}
添加完配置信息后,設置斷點,按F5執行文件,會發現終端執行的命令將定義的參數都加進去了。
方法二:還是以命令行的形式賦予參數,執行Python文件
我們知道,當Python文件需要的參數過多時,如果每次參數變換都要重新修改launch.json文件中的配置信息,那將會使過程更加繁瑣,降低了工作效率。因此,如果能夠將命令行運行與VSCode的可視化斷點調試結合起來,會更高效。
首先,需要Python的依賴包debugpy,在工作環境下下載該包:
pip install debugpy
然后修改launch.json文件配置,和上一種方法一致,點擊運行,打開配置,將json配置修改如下所示。
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Attach",
"type": "python",
"request": "attach",
"connect": {
"host": "localhost",
"port": xxxx
}
}
]
}
其中的端口參數"port",自行指定一個未占用的端口。
我們假設正常運行某Python文件的命令是
python xxx.py -arg1 ARG1 -arg2 ARG2
那么,在想要進行調試環節之前,在VSCode終端命令行中鍵入命令:
python -m debugpy --listen xxxx --wait-for-client xxx.py -arg1 ARG1 -arg2 ARG2
注意,這里的命令使用了debugpy包,且設置了一個必要的參數--listen,這里監聽的端口xxxx由用戶指定,和launch.json中設置的端口號一致。
鍵入命令后正常執行,接下來在程序中想要查看之處設置好斷點,按F5鍵,進入普通的debug流程即可。之后的步驟與不帶參數的程序調試一致。