python run和debug程序的操作過(guò)程
前言:
有的時(shí)候我們有這樣的需求,需要再vscode里面調(diào)試python代碼,但是我們還需要為不同的文件設(shè)置不同的調(diào)試參數(shù),如設(shè)置python解釋器,設(shè)置輸入?yún)?shù)等,下面說(shuō)如何再vscode進(jìn)行上述的調(diào)試和運(yùn)行。
對(duì)于運(yùn)行來(lái)說(shuō),雖然可以使用命令行設(shè)置解釋器和輸入?yún)?shù),但是呢,當(dāng)輸入?yún)?shù)很大的時(shí)候,每次輸入也是很麻煩,直接寫道json文件里面是一勞永逸了。
一、文件生成



之后就會(huì)自動(dòng)在當(dāng)前工作空間下創(chuàng)建一個(gè).vscode/launch.json的文件

二、文件配置
1.設(shè)置運(yùn)行參數(shù)和解釋器
{
"version": "0.2.0",
"configurations": [
{
"name": "MRTA_DRL: t1.py (args)",
"type": "debugpy",
"request": "launch",
// 1) 要跑的 python 文件:建議寫死入口腳本
"program": "${workspaceFolder}/t1.py",
// 2) 工作路徑(相當(dāng)于你在終端 cd 到哪里再執(zhí)行)
// "cwd": "${workspaceFolder}",
// 3) 運(yùn)行參數(shù):等價(jià)于 python train.py --config xxx ...
"args": ["--config", "simple_het", "--seed", "0"],
// 4) 指定解釋器(兩種方式二選一)
// 方式A:直接寫解釋器絕對(duì)路徑(最穩(wěn))
"python": "/home/yzh/miniconda3/envs/MRTA_DRL/bin/python",
// 方式B:不寫 python,改用 VSCode 里選的解釋器(推薦日常)
// -> Ctrl+Shift+P 選擇 “Python: Select Interpreter”
// -> 然后刪掉本行 "python": "...",
"console": "integratedTerminal",
}
]
}t1.py的代碼如下??梢钥闯?-config這個(gè)參數(shù)是必須的,但是我可以直接運(yùn)行這個(gè)程序。快捷鍵就是ctrl+F5。
# args_demo.py
import argparse
def parse_args():
parser = argparse.ArgumentParser(description="MRTA Training Arguments")
parser.add_argument(
"--config",
type=str,
required=True,
help="config name, e.g. simple_het"
)
parser.add_argument(
"--seed",
type=int,
default=0,
help="random seed"
)
return parser.parse_args()
if __name__ == "__main__":
args = parse_args()
print("===== Parsed Arguments =====")
print(f"config = {args.config}")
print(f"seed = {args.seed}")那么我直接按住快捷鍵,他是怎么知道我運(yùn)行的是那一個(gè)文件呢?是因?yàn)橄聢D箭頭表明的位置已經(jīng)指明了。

運(yùn)行結(jié)果如下

同理,我可以按住F5,直接調(diào)試這個(gè)程序

2.設(shè)置工作空間路徑
那么如何調(diào)試工作空間內(nèi)部文件夾里面的python文件呢?一共有兩種辦法,第一種指名絕對(duì)路徑,第二種重構(gòu)工作空間路徑。
文件樹(shù)如下

(1)第一種
這里我們指名了
"program": "${workspaceFolder}/test_one/t2.py",
所以可以直接找到這個(gè)文件。
{
"version": "0.2.0",
"configurations": [
{
"name": "MRTA_DRL: t1.py (args)",
"type": "debugpy",
"request": "launch",
// 1) 要跑的 python 文件:建議寫死入口腳本
"program": "${workspaceFolder}/t1.py",
// 2) 工作路徑(相當(dāng)于你在終端 cd 到哪里再執(zhí)行)
// "cwd": "${workspaceFolder}",
// 3) 運(yùn)行參數(shù):等價(jià)于 python train.py --config xxx ...
"args": ["--config", "simple_het", "--seed", "0"],
// 4) 指定解釋器(兩種方式二選一)
// 方式A:直接寫解釋器絕對(duì)路徑(最穩(wěn))
"python": "/home/yzh/miniconda3/envs/MRTA_DRL/bin/python",
// 方式B:不寫 python,改用 VSCode 里選的解釋器(推薦日常)
// -> Ctrl+Shift+P 選擇 “Python: Select Interpreter”
// -> 然后刪掉本行 "python": "...",
"console": "integratedTerminal",
},
{
"name": "MRTA_DRL: t2.py (args)",
"type": "debugpy",
"request": "launch",
// 1) 要跑的 python 文件:建議寫死入口腳本
"program": "${workspaceFolder}/test_one/t2.py",
// 2) 工作路徑(相當(dāng)于你在終端 cd 到哪里再執(zhí)行)
// "cwd": "${workspaceFolder}",
// 3) 運(yùn)行參數(shù):等價(jià)于 python train.py --config xxx ...
"args": ["--config", "simple_het", "--seed", "0"],
// 4) 指定解釋器(兩種方式二選一)
// 方式A:直接寫解釋器絕對(duì)路徑(最穩(wěn))
"python": "/home/yzh/miniconda3/envs/MRTA_DRL/bin/python",
// 方式B:不寫 python,改用 VSCode 里選的解釋器(推薦日常)
// -> Ctrl+Shift+P 選擇 “Python: Select Interpreter”
// -> 然后刪掉本行 "python": "...",
"console": "integratedTerminal",
},
]
}(2)第二種重構(gòu)工作空間路徑
// 1) 要跑的 python 文件:建議寫死入口腳本
"program": "${workspaceFolder}/t2.py",
// 2) 工作路徑(相當(dāng)于你在終端 cd 到哪里再執(zhí)行)
"cwd": "${workspaceFolder}/test_one",
{
"version": "0.2.0",
"configurations": [
{
"name": "MRTA_DRL: t1.py (args)",
"type": "debugpy",
"request": "launch",
// 1) 要跑的 python 文件:建議寫死入口腳本
"program": "${workspaceFolder}/t1.py",
// 2) 工作路徑(相當(dāng)于你在終端 cd 到哪里再執(zhí)行)
// "cwd": "${workspaceFolder}",
// 3) 運(yùn)行參數(shù):等價(jià)于 python train.py --config xxx ...
"args": ["--config", "simple_het", "--seed", "0"],
// 4) 指定解釋器(兩種方式二選一)
// 方式A:直接寫解釋器絕對(duì)路徑(最穩(wěn))
"python": "/home/yzh/miniconda3/envs/MRTA_DRL/bin/python",
// 方式B:不寫 python,改用 VSCode 里選的解釋器(推薦日常)
// -> Ctrl+Shift+P 選擇 “Python: Select Interpreter”
// -> 然后刪掉本行 "python": "...",
"console": "integratedTerminal",
},
{
"name": "MRTA_DRL: t2.py (args)",
"type": "debugpy",
"request": "launch",
// 1) 要跑的 python 文件:建議寫死入口腳本
"program": "${workspaceFolder}/t2.py",
// 2) 工作路徑(相當(dāng)于你在終端 cd 到哪里再執(zhí)行)
"cwd": "${workspaceFolder}/test_one",
// 3) 運(yùn)行參數(shù):等價(jià)于 python train.py --config xxx ...
"args": ["--config", "simple_het", "--seed", "0"],
// 4) 指定解釋器(兩種方式二選一)
// 方式A:直接寫解釋器絕對(duì)路徑(最穩(wěn))
"python": "/home/yzh/miniconda3/envs/MRTA_DRL/bin/python",
// 方式B:不寫 python,改用 VSCode 里選的解釋器(推薦日常)
// -> Ctrl+Shift+P 選擇 “Python: Select Interpreter”
// -> 然后刪掉本行 "python": "...",
"console": "integratedTerminal",
},
]
}到此這篇關(guān)于python run和debug程序的操作過(guò)程的文章就介紹到這了,更多相關(guān)python run和debug程序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中sleep函數(shù)用法實(shí)例分析
這篇文章主要介紹了python中sleep函數(shù)用法,實(shí)例分析了sleep函數(shù)的功能及使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
對(duì)Python中l(wèi)ist的倒序索引和切片實(shí)例講解
今天小編就為大家分享一篇對(duì)Python中l(wèi)ist的倒序索引和切片實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
在matplotlib的圖中設(shè)置中文標(biāo)簽的方法
今天小編就為大家分享一篇在matplotlib的圖中設(shè)置中文標(biāo)簽的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
python里的單引號(hào)和雙引號(hào)的有什么作用
在本篇文章里小編給大家分享的是一篇關(guān)于python里的單引號(hào)和雙引號(hào)的作用的相關(guān)內(nèi)容,需要的朋友們可以學(xué)習(xí)下。2020-06-06
windows11環(huán)境安裝django項(xiàng)目GNU gettext工具的步驟
Django 框架具有很好的 I18N 和 L10N 的支持,其實(shí)現(xiàn)是基于 GNU 的 gettext,本文主要介紹了windows11環(huán)境安裝django項(xiàng)目GNU gettext工具的步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04
Python項(xiàng)目打包并部署到Docker詳細(xì)步驟
這篇文章主要介紹了如何使用Docker將Python項(xiàng)目打包成鏡像并部署為容器,包括準(zhǔn)備工作、Python項(xiàng)目結(jié)構(gòu)、編寫Dockerfile、構(gòu)建Docker鏡像、運(yùn)行容器、優(yōu)化鏡像大小、自動(dòng)化部署以及總結(jié),需要的朋友可以參考下2025-03-03
Python實(shí)現(xiàn)Web請(qǐng)求與響應(yīng)的教學(xué)指南
Web?請(qǐng)求與響應(yīng)是?Web?通信的基礎(chǔ),其中?Web?請(qǐng)求由客戶端發(fā)起,服務(wù)器處理后返回響應(yīng),本文主要介紹了Python實(shí)現(xiàn)Web請(qǐng)求與響應(yīng)的相關(guān)知識(shí),有需要的可以了解下2025-05-05
python數(shù)字圖像處理環(huán)境安裝與配置過(guò)程示例
這篇文章主要為大家介紹了python數(shù)字圖像處理環(huán)境安裝與配置過(guò)程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Python實(shí)現(xiàn)語(yǔ)音識(shí)別和語(yǔ)音合成功能
聲音的本質(zhì)是震動(dòng),震動(dòng)的本質(zhì)是位移關(guān)于時(shí)間的函數(shù),波形文件(.wav)中記錄了不同采樣時(shí)刻的位移。這篇文章主要介紹了Python實(shí)現(xiàn)語(yǔ)音識(shí)別和語(yǔ)音合成,需要的朋友可以參考下2019-09-09

