VS code 进行python远程运行与调试以及简单可视化变量

2023-05-16

23.04.29更新,增加环境变量的debug配置项

23.03.24更新

这个配置项实在太常用了。置顶了。我这自己也天天开这篇文章复制粘贴的...

{
    "name": "train debug",
    "type": "python",
    "python": "/root/miniconda3/envs/torch17/bin/python",
    "request": "launch",
    "program": "train/run_training.py",
    "console": "integratedTerminal",
    "args": ["--script", "aaa", "--config", "bbb"],
    "cwd": "/root/data/code/",
    "justMyCode": false,
    "env": {
        "PYTHONPATH": ""
    }
}

简单的转换args 的代码。自动加引号:

export S="--script aaa --config bbb"

python -c "print('\"'+'\", \"'.join('$S'.split()) +'\"')"

带自动换行的版本(不完美,但能用):

python -c "print(',\n'.join(['\"'+'\", \"'.join(('--'+s).split()) +'\"' for s in '$S'.split('--')]))"

把前面S里面的东西换成要转换的参数就可以(通常大家从readme直接复制的那串参数)

 然后再把返回值复制到配置项就行咯。

预计后续把最近找到的新发现分享一下。关于可视化的。

__

            "env": {

                "PYTHONPATH": "/root/data2/close-main/"

            }

说在前面:

为什么使用远程工具访问服务器,而不是打开可视化?

还不是因为可视化延迟卡顿等等无法忍受!!

 

为什么推荐使用vs code进行远程,而不是使用Pycharm?

Pycharm远程的逻辑是代码同步。就是本地跟远程服务器上都会存储同一个工程。所以常规情况下,有可能会出现本地文件跟远端文件不同步,进行同步的操作。并且如果有大文件在文件夹内,远程同步会导致下载大文件,速度慢等问题。当然优势就是,即使短时间掉线,也能改完代码,等网络好了以后同步上去。

Vs code远程的逻辑是文件查看器。其只能在连上远程服务器以后,才能查看并修改代码。优势也很明显,不需要管代码同步的问题,只管改代码,跑就是了。

一、确保本机可以ssh访问服务器

就打开终端(powershell) ssh xxx@xxxxxxx ,可以远程登录机子。

二、安装vs code的远程插件

1)点开左侧栏,四个小方块

安装完毕以后,左侧将会出现按钮

三、设置连接信息

1)点击此按钮

2)然后点击小齿轮,打开中间配置文件选项。选择.ssh\config这一项

3)添加配置项

Host 10.0.0.1

    HostName 10.0.0.1

    User ubuntu

这里 Host是这个机子的名字,HostName才是机子的 ip地址。然后user是用户名

如果需要添加端口,只需要加上Port属性

Host pc4

    HostName 192.168.137.13

    User root

    Port 27706

完成以后的这个文件类似这样

可以添加多个,然后控制多个机子。

四、打开机子的项目文件夹

设置完成以后,左侧将会出现对应Host的名称,鼠标在名称上悬浮,点击+号,输入密码。然后点击左侧Open Folder选择工程目录即可。

五、配置Python插件与选择环境

这一步是必须的,因为敲代码总是需要补全的。随意打开一个python文件,然后点击左侧debug按钮。

点击run and debug

这一步会让你选择python extension,安装到远程的机子上面。

点击安装,vs code将自动安装这个工具到远程机子上,等待片刻。

这里有个细节。如果远程机子python版本低于3.7,最新的插件不支持debug。解决方法详见

vs code python插件无法debug

然后安装完毕后,低栏会出现Python版本的字样。这是远程机子使用的python版本。

 单击python这个按钮,选择当前工程使用的python。

如果没有这一栏显示,按F1,搜索 Select Interpreter

然后vscode会自动检索机子存在的python环境,点击选择即可。

六、运行代码,打开Terminal

常规运行远程代码,需要使用Terminal进行进行。稳妥。

点击下方圆圈叉叉三角感叹号的按钮,然后点击terminal,即可自动打开远程终端(还会自动激活python环境)

Terminal的链接会因为ssh断开而停止任务。如果一直运行的任务,需要启动screen来进行跑代码

这个就不细说了

安装:apt install screen

进入名为run的终端: screen -R run

退出环境: ctrl+a+d

再次进入run终端: screen -r run

其他就自行百度吧。

七、Debug工程

先打开随便一个py文件,然后回到run debug界面,可以看到这个页面

  然后点击创建launch.json文件。可以打开一个launch.json文件,修改该文件作为运行启动的配置项。

这个是默认的启动项,会运行当前所处页面的脚本。

在需要debug打上断点,即可debug。

但是通常需要debug的是一个固定启动的文件,在configurations这个列表里么可以添加多个上面示例的字典(大括号的内容),然后用于配置不同的debug选项。

大括号里的内容,按如下配置。常用会进行修改的配置项已经提供在这了。

        {

            "name": "train debug",

            "type": "python",

            "python": "/root/miniconda3/envs/torch17/bin/python",

            "request": "launch",

            "program": "train/run_training.py",

            "console": "integratedTerminal",

            "args": ["--script", "aaa", "--config", "bbb"],

            "cwd": "/root/data/code/",

            "justMyCode": true

}

 

这里说明一下:

Name: 这个配置项的名称

python:使用的python环境,可省略。这项省略的话,就默认使用前面选择的那个python解析器

Program: 代码的路径

args:参数。需要说明,参数上的每一项,都需要用引号框上

cwd:运行代码时的工作路径,可省略。省略时就是当前vscode打开的工程路径。

justMyCode: debug时候是否进入库文件的断点

上面这个配置项相当于在终端运行,python train/run_training.py --script aaa --config bbb

保存以后,就可以在debug顶栏选择不同配置项名称,运行不同配置的代码。

八、查看图片或者plt或者opencv

啊这。。。你问我这个?

图片可以存好,然后在vs code的文件栏上打开。不过也很慢就是..

plt或者opencv的话,好像有个X11转发可以考虑吧

你问我怎么弄?

阿巴阿巴,还没仔细研究呢..

还是打开vnc,然后打开pycharm吧  - -

--- 221021更新--

还没倒弄麻烦的X11,就看了网上简单的可视化方式。

用到Python Image Preview这个vscode插件。

就是这里的第二个,点击install安装。在该插件detail页面,有写怎么操作启用这个功能。

先介绍一下这个插件的作用。就是在debug过程中,将某个变量进行可视化为图片,传回来供我们查看。所以只能进行简单的可视化吧。

使用方式如图:

具体有几个点个人感觉需要注意:

1. 安装完插件以后,建议重启一下整个vscode,(断开ssh重连,reload window)等操作,避免之前博客提到的插件换版本之类不生效的问题。

2. 得先进入debug状态到某个断点以后,才能启动这功能吧。大概。

3. 这里提到用ctrl p 然后输入 Python Image Preview来启用插件。反正我这试了不行。我这需要使按F1, 就前面提到切换python版本、reload window那个工具栏。然后再输入 Python Image Preview就能找到。

4. 点击插件以后,右下角会提示activate。但是还是没啥明显的提示。这时候,需要将鼠标光标点击到你要查看的某个变量。然后不能着急,等一会会出来一个小灯泡。接着点击小灯泡,就能进行可视化。

大致就这些吧。感觉简单可视化还行,但是想查看具体的数值,还是没那么好用吧。支持的数值类型比较多,这是不错的一点,譬如 gpu上的pytorch变量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VS code 进行python远程运行与调试以及简单可视化变量 的相关文章

随机推荐

  • 入栈出栈顺序

    转自 xff1a https blog csdn net qq 1932568757 article details 82752325 问题 xff1a 已知入栈顺序 xff0c 找出不可能得出栈顺序 已知一个栈得入栈顺序为ABCDEF x
  • 远程连接一闪而过或登录后无法正常操作的解决方法

    今天我远程登录到服务器上 xff08 win2003 xff09 修改网站某目录的属性 xff0c 由于该目录下的文件达好几万个 xff0c 所以我操作完后就等待完成 xff0c 把远程窗口最小化后 xff0c 继续在本地电脑做其他的事情
  • Copilot使用教程

    官网及申请地址 xff1a https copilot github com 教程包含如下内容 xff1a copilot简单介绍使用python对copilot做些简单使用测试使用copilot对LeetCode 题目解答 一 copil
  • Python打包与解压zip

    打包 shutil模块 shutil make archive base name format root dir base dir verbose dry run owner group logger 参数说明 xff1a base na
  • powershell批量修改文件名称。

    下面的代码能够给桌面 都彭 文件夹下的所有目录文件名称增加都 都彭 两个字 Get ChildItem Path F Desktop 都彭 获取这个目录下的所有文件 增加recurse参数后能够对这个目录进行递归获包含子目录的所有文件名 利
  • ThinkPad相机打开灰色加斜杠问题解决!!!

    问题是这样的 xff01 xff01 xff01 很久前是这样的 xff0c 一直弄不好 xff0c 删了驱动 xff0c 重装驱动 xff0c 注册表弄了 xff0c 反正是各种弄 xff0c 各种帖子找了还是不行 xff01 xff01
  • SSL error when connecting to the Jack server. Try ‘jack-diagnose‘

    Android7 编译出现jack admin启动问题 xff1a log如下 xff1a Launching Jack server java XX MaxJavaStackTraceDepth 61 1 Djava io tmpdir
  • 【IOS】史上最全文件操作NSFileManager

    功能列表 判断文件是否存在 43 BOOL fileExistsAtPath NSString aPath 判断文件是否存在Documents下 43 BOOL fileExistsAtDocumentsWithFileName NSStr
  • 【IOS】StoryBoard传值TableView点击Cell跳转传值(segue)

    问题 void prepareForSegue UIStoryboardSegue segue sender id sender 以上方法会先于 void tableView UITableView tableView didSelectR
  • Android Windows虚拟串口调试

    1 Configure Virtual Serial Port Driver 创建虚拟串口 2 设置Android模拟器虚拟串口 进入Android SDK的tools目录 xff0c 通过cmd执行命令 xff1a emulator ex
  • 贪心算法之木棍问题

    问题 H 木棒 时间限制 1 Sec 内存限制 32 MB 提交 147 解决 60 提交 状态 题目描述 现有n根木棒 xff0c 已知它们的长度和重量 要用一部木工机一根一根地加工这些木棒 该机器在加工过程中需要一定的准备时间 xff0
  • cephadm安装ceph v15

    cephadm 安装ceph v15准备 参考安装文档 有问题可以直接留言 xff0c 大家一起交流 xff0c 以下都是部署的比较基础的东西 https docs ceph com en latest cephadm http www d
  • Mysql启用SSL以及JDBC连接Mysql配置

    文章目录 一 Mysql启用SSL配置1 检查mysql是否支持ssl2 设置用户是否使用ssl连接1 查看用户是否使用SSL连接2 强制某用户使用SSL连接3 测试不使用ssl能否连接上4 取消用户使用ssl连接 二 JDBC连接Mysq
  • Proxmox ve 使用cloud-init模板生成虚拟机

    本文中斜体字部分为命令行 1 Cloud init 的作用 cloud init是一个Linux虚拟机的初始化工具 xff0c 被广泛应用在AWS和OpenStack等云平台中 xff0c 用于快速新建虚拟机 xff0c 并进行一些系统初始
  • YUV文件转opencv的Mat格式并且显示播放

    include lt stdio h gt include lt string h gt include lt opencv2 core core hpp gt include lt opencv2 imgproc imgproc hpp
  • python 元组的元素的元素可以被修改

    Python的元组与列表类似 xff0c 不同之处在于元组的元素不能修改 元组使用小括号 xff0c 列表使用方括号 元组创建很简单 xff0c 只需要在括号中添加元素 xff0c 并使用逗号隔开即可 假设元组的第3个元素是一个字典 xff
  • VOT Toolkit工具使用说明(Python版)

    VOT Toolkit工具使用说明 xff08 Python版 xff09 一 工具链接 vot toolkit python版 github链 xff1a https github com votchallenge toolkit vot
  • 构建ubuntu base 出现apt update错误

    apt get update 错误 Get 1 http ports ubuntu com ubuntu ports bionic InRelease 242 kB Err 1 http ports ubuntu com ubuntu po
  • pip 安装numba报错

    pip 安装numba报错 问题描述 xff1a 本人在一个十分干净的容器里面 xff0c 想pip安装numba库 xff0c 但是该库需要依赖llvmlite这个库 xff0c 然后就它自己安装llvmlite的时候 xff0c 就报错
  • VS code 进行python远程运行与调试以及简单可视化变量

    23 04 29更新 xff0c 增加环境变量的debug配置项 23 03 24更新 这个配置项实在太常用了 置顶了 我这自己也天天开这篇文章复制粘贴的 34 name 34 34 train debug 34 34 type 34 34