在VSCode中調試帶參數的Python程序


背景

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流程即可。之后的步驟與不帶參數的程序調試一致。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM