VS Code 帶參數 debug python程式
問題描述
學姊最近問我要怎麼在 VS Code 帶參數去debug python程式,什麼是帶參數執行 Python 程式呢?也就是在 Python 腳本檔依據執行指令的參數來決定程式要跑一個環境、哪一個資料集等等,是一個非常好用的功能。
學姊遇到的問題是如果在終端機上下 python main.py –e 1000 –d datasets,沒辦法在 VS Code 上 debug,原因是因為沒有使用 VS Code debugger,就算用了,也無法指定參數內容,當跑到要吃參數的程式片段的時候會因此拋錯。
解決方法
首先,我先準備了一個範例程式碼 main.py,內容如下,在這個範例檔案會吃兩個參數,一個是 -e 迭代次數、另一個 -d 資料集,我使用了 argparse 套件來吃參數,用法在此不介紹。
1 |
|
點開 VS Code 左側的 Run and debug,再點選 create a lauch.json file。
接著會跳出 Prompt,選擇 Python File。
點選後,VS Code 就會在當前的資料夾底下,建立一個 .vscode 的資料夾,裡面放 lauch.json,我會要在 configurations 裡面多新增一個 key 叫做 args,裡面填寫我們要執行的參數值,要注意的地方是,參數跟值要分開來寫,舉例來說,原本用終端機執行 python 的指令是 python -e 1000 -d datasets,args就要這樣寫 [“-e”, “1000”, “-d”, “~/test/datasets.csv”]。
1 | { |
為何要這樣設定的原因是因為 VS Code 可以根據我們的參數設定來執行、除錯程式。
點開 VS Code 左側的 Run and debug,按下綠色 Play 按鈕就可以開始 debug,我是在程式碼的第 23 行下斷點,在 watch 監控 epoch、datasets_path 這兩個變數的內容,可以看到我們在 launch.json 設定的參數。
參考文件
https://code.visualstudio.com/docs/cpp/launch-json-reference