文章目录
- 前言
- 调试传入参数
- 运行传入参数
- 延申
前言
以前,我都是用Pycharm专业版的,由于其好像在外网的时候,不能够通过VPN来连接内网服务器,我就改用了vscode。改用了之后,遇到一个问题,调试或者运行python程序的时候,怎么给程序传入参数。
通常,很多python项目都会用argparse这个包来统一管理程序运行时所需要的参数,
import argparse
parser = argparse.ArgumentParser(description="Deep Gaussian Processes on MNIST")
parser.add_argument("-n", "--num-epochs", default=5, type=int)
parser.add_argument("-t", "--num-iters", default=60, type=int)
parser.add_argument("-b", "--batch-size", default=1000, type=int)
parser.add_argument("-lr", "--learning-rate", default=0.01, type=float)
args = parser.parse_args()
print(args.num_epochs)
#结果是默认值5
现在问题来了,我们想要设置num_epochs
这个参数为7,看一下程序运行效果好不好,怎么办?
有人说,我直接vscode底部开一个命令行终端,传入这个参数不就行了吗?这样当然可以,但是需要自己写运行命令,我们希望的是直接用vscode可视化的按钮。
有人说,直接把上述代码改成7不就好了吗?这样当然可以,但是好麻烦,要改代码,改多了别把默认值给忘了。
我们想要的是不改代码,每次运行程序,如果传入这个参数,那么这个参数就会被设置为我想要的值,如果不传入这个参数,那么程序就会用默认值5。
Pycharm直接是可以配置的,很方便。但是vscode很不直观,所以有了这一篇文章。
调试传入参数
首先,进入我们要调试的文件,我这是main.py。
点击右上角那个下拉,点击红色框。如果不传入参数,我们一般直接是点击红色框上面这个。
如下,点击那个设置lauch.json.
打开之后,这玩意应该是下面这个样子的。
我们在最后面添加如下行
这样就大功告成了。
配置好了之后,重复上述的步骤,但是不点那个设置了,而是直接点debug。
这个时候,我们在vscode底部terminal里面可以发现,已经传入了这个参数。
运行传入参数
配置了上述那个lauch.json之后,运行传入参数很简单了。
不能点右上角那个运行按钮,而是点菜单栏那个,而且要点的不是第一个,而是第二个,Run without Debugging。
成功了,在vscode底部terminal里面可以发现,已经传入了这个参数。
延申
上面我们传入了一个参数,传入多个呢?在那个lauch.json文件里面的args里面继续往后写就行了。
例如
"args": ["--key1","value1","--key2","value2"]