python run和debug程序的操作过程

 更新时间:2026年02月10日 09:48:49   作者:淮北494  
有的时候我们需要再vscode里面调试python代码,但是我们还需要为不同的文件设置不同的调试参数,如设置python解释器,设置输入参数等,下面我们聊聊如何再vscode进行上述的调试和运行,感兴趣的朋友跟随小编一起看看吧

前言:

有的时候我们有这样的需求,需要再vscode里面调试python代码,但是我们还需要为不同的文件设置不同的调试参数,如设置python解释器,设置输入参数等,下面说如何再vscode进行上述的调试和运行。

对于运行来说,虽然可以使用命令行设置解释器和输入参数,但是呢,当输入参数很大的时候,每次输入也是很麻烦,直接写道json文件里面是一劳永逸了。

一、文件生成

之后就会自动在当前工作空间下创建一个.vscode/launch.json的文件

二、文件配置

1.设置运行参数和解释器

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "MRTA_DRL: t1.py (args)",
      "type": "debugpy",
      "request": "launch",
      // 1) 要跑的 python 文件:建议写死入口脚本
      "program": "${workspaceFolder}/t1.py",
      // 2) 工作路径(相当于你在终端 cd 到哪里再执行)
    //   "cwd": "${workspaceFolder}",
      // 3) 运行参数:等价于 python train.py --config xxx ...
      "args": ["--config", "simple_het", "--seed", "0"],
      // 4) 指定解释器(两种方式二选一)
      // 方式A:直接写解释器绝对路径(最稳)
      "python": "/home/yzh/miniconda3/envs/MRTA_DRL/bin/python",
      // 方式B:不写 python,改用 VSCode 里选的解释器(推荐日常)
      // -> Ctrl+Shift+P 选择 “Python: Select Interpreter”
      // -> 然后删掉本行 "python": "...",
      "console": "integratedTerminal",
    }
  ]
}

t1.py的代码如下。可以看出--config这个参数是必须的,但是我可以直接运行这个程序。快捷键就是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}")

那么我直接按住快捷键,他是怎么知道我运行的是那一个文件呢?是因为下图箭头表明的位置已经指明了。

运行结果如下

同理,我可以按住F5,直接调试这个程序

2.设置工作空间路径

那么如何调试工作空间内部文件夹里面的python文件呢?一共有两种办法,第一种指名绝对路径,第二种重构工作空间路径。

文件树如下

(1)第一种

这里我们指名了

"program": "${workspaceFolder}/test_one/t2.py",

所以可以直接找到这个文件。

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "MRTA_DRL: t1.py (args)",
      "type": "debugpy",
      "request": "launch",
      // 1) 要跑的 python 文件:建议写死入口脚本
      "program": "${workspaceFolder}/t1.py",
      // 2) 工作路径(相当于你在终端 cd 到哪里再执行)
    //   "cwd": "${workspaceFolder}",
      // 3) 运行参数:等价于 python train.py --config xxx ...
      "args": ["--config", "simple_het", "--seed", "0"],
      // 4) 指定解释器(两种方式二选一)
      // 方式A:直接写解释器绝对路径(最稳)
      "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) 工作路径(相当于你在终端 cd 到哪里再执行)
    //   "cwd": "${workspaceFolder}",
      // 3) 运行参数:等价于 python train.py --config xxx ...
      "args": ["--config", "simple_het", "--seed", "0"],
      // 4) 指定解释器(两种方式二选一)
      // 方式A:直接写解释器绝对路径(最稳)
      "python": "/home/yzh/miniconda3/envs/MRTA_DRL/bin/python",
      // 方式B:不写 python,改用 VSCode 里选的解释器(推荐日常)
      // -> Ctrl+Shift+P 选择 “Python: Select Interpreter”
      // -> 然后删掉本行 "python": "...",
      "console": "integratedTerminal",
    },
  ]
}

(2)第二种重构工作空间路径

// 1) 要跑的 python 文件:建议写死入口脚本

"program": "${workspaceFolder}/t2.py",

// 2) 工作路径(相当于你在终端 cd 到哪里再执行)

"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) 工作路径(相当于你在终端 cd 到哪里再执行)
    //   "cwd": "${workspaceFolder}",
      // 3) 运行参数:等价于 python train.py --config xxx ...
      "args": ["--config", "simple_het", "--seed", "0"],
      // 4) 指定解释器(两种方式二选一)
      // 方式A:直接写解释器绝对路径(最稳)
      "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) 工作路径(相当于你在终端 cd 到哪里再执行)
      "cwd": "${workspaceFolder}/test_one",
      // 3) 运行参数:等价于 python train.py --config xxx ...
      "args": ["--config", "simple_het", "--seed", "0"],
      // 4) 指定解释器(两种方式二选一)
      // 方式A:直接写解释器绝对路径(最稳)
      "python": "/home/yzh/miniconda3/envs/MRTA_DRL/bin/python",
      // 方式B:不写 python,改用 VSCode 里选的解释器(推荐日常)
      // -> Ctrl+Shift+P 选择 “Python: Select Interpreter”
      // -> 然后删掉本行 "python": "...",
      "console": "integratedTerminal",
    },
  ]
}

到此这篇关于python run和debug程序的操作过程的文章就介绍到这了,更多相关python run和debug程序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅谈TensorFlow中读取图像数据的三种方式

    浅谈TensorFlow中读取图像数据的三种方式

    这篇文章主要介绍了浅谈TensorFlow中读取图像数据的三种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Python运维之获取系统CPU信息的实现方法

    Python运维之获取系统CPU信息的实现方法

    今天小编就为大家分享一篇Python运维之获取系统CPU信息的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python制作表白爱心合集

    Python制作表白爱心合集

    这篇文章主要介绍了几个表白小项目合集,有爱心表白、爱心树等。文中的示例代码讲解详细,对我们学习Python有一定的价值,需要的可以参考一下
    2022-01-01
  • flask框架配置mysql数据库操作详解

    flask框架配置mysql数据库操作详解

    这篇文章主要介绍了flask框架配置mysql数据库操作,结合实例形式详细分析了flask框架配置mysql数据库及连接访问等相关操作技巧,需要的朋友可以参考下
    2019-11-11
  • Python发送邮件封装实现过程详解

    Python发送邮件封装实现过程详解

    这篇文章主要介绍了Python发送邮件封装实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Python bytes转string实现方式

    Python bytes转string实现方式

    本文介绍了Python中使用str()函数和bytes的decode()函数将bytes类型转换为string类型的方法,并通过举例说明了具体操作步骤
    2026-04-04
  • 教你如何用python操作摄像头以及对视频流的处理

    教你如何用python操作摄像头以及对视频流的处理

    这篇文章主要介绍了教你如何用python操作摄像头以及对视频流的处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Django Sitemap 站点地图的实现方法

    Django Sitemap 站点地图的实现方法

    这篇文章主要介绍了Django Sitemap 站点地图的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Django 开发环境与生产环境的区分详解

    Django 开发环境与生产环境的区分详解

    这篇文章主要介绍了Django 开发环境与生产环境的区分详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Django项目中添加ldap登陆认证功能的实现

    Django项目中添加ldap登陆认证功能的实现

    这篇文章主要介绍了Django项目中添加ldap登陆认证功能的实现,详细介绍了django-auth-ldap的使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04

最新评论