当前位置: 首页 > news >正文

[实验日志] VS Code 连接服务器上的 Python 解释器进行远程调试

目录

0. 前言

1. 环境

2. 准备工作

2.1 安装VS Code

2.2 安装插件

2.3 配置远程服务器

2.4 修改设置

2.5 打开远程调试窗口

3. 调试代码

3.1 输密码

3.2 打开服务器文件夹

3.3 配置Python环境

3.4 调试Python代码

补充:使用调试控制台,查看变量tensor的形状

结语


0. 前言

我们跑大型项目的时候,数据和代码都在服务器上。然而,服务器往往是Linux系统,没有图形化界面,本文将以Python语言为示例,讲解一下如何通过VS Code这款免费且好用的IDE进行远程调试代码。

常用的JetBrains家族(IntelliJ IDEA、Pycharm等)的开发工具里已经实现了远程开发功能,选择VS Code 作为开发工具的原因有以下两点:
(1)JetBrains(如Pycharm)需要专业版才有远程调试的功能,而专业版收费高,大部分人平时还是使用社区版。VS Code是微软的一款免费IDE软件,又开源又支持远程调试。
(2)JetBrains工具远程开发时通过FTP、SFTP(File Transfer Protocol,文件传输协议)实现,它们的远程开发的原理是通过文件传输协议连接到远程服务器,通过上传和下载的方式进行远程项目和本地项目的同步,这样的缺点是:不能实时同步、操作繁琐,需要维护两份代码。而VS Code是通过SSH(Secure Shell)的方式连接到远程服务器,换句话说,VS Code在远程开发过程中扮演的角色更像是一款终端模拟工具,它不需要繁琐的上传和下载步骤,实时性更好,只需要在Windows上保存一下,就会瞬间同步到远程服务器,不用建立本地和远程映射,能直接查看和修改服务器上的文件。

1. 环境

本地环境:Windows 10
远程环境:Ubuntu 16.04(64bit)、ubuntu20.04) 亲测都可以
Python版本:3.6 - 3.8 亲测都可以
VS Code:1.43.2 - 1.96.4 亲测都可以

2. 准备工作

2.1 安装VS Code

官网:Download Visual Studio Code - Mac, Linux, Windows

需要安装VS Code,建议选择Syetem Installer。

2.2 安装插件

安装Remote Development这个插件,步骤如下图所示:

  • 点击扩展按钮
  • 搜索Remote Development
  • 安装

2.3 配置远程服务器

在 SSH TARGETS 配置远程服务器,具体步骤如下:

  • 点击(窗口左侧栏)远程资源管理器
  • 点击齿轮图标
  • 打开弹出的config文件,分别配置Host、Hostname、User

这里需要注意一个,Host是一个名称,自己可以随意命名。Hostname是远程服务器的IP,User是用于登录远程服务器的账户名称。

以AutoDL为例,找到自己租的远程服务器实例,SSH登录:

复制登录指令如下:(输入登录指令可以自动生成config)

ssh -p 26982 root@connect.yza1.seetacloud.com

对应到config文件中的Host、Hostname、User:

保存后左侧SSH栏就会出现服务器名称

2.4 修改设置

打开VS Code设置,搜索Show Login Terminal,把"Always reveal the SSH login terminal"勾选上,记得一定要操作这一步,不然会一直提示报错

2.5 打开远程调试窗口

把鼠标放在上一步配置的远程连接条目上,右键,有两个条目可以选择,推荐 Connect to Host in New Window。然后就会在窗口打开我们想要的远程连接。


3. 调试代码

3.1 输密码

密码会隐藏看不见,但实际上已经输入好了,粘贴上去直接回车


3.2 打开服务器文件夹

  • 点击Explorer
  • 点击Open Folder

  • 点击确定

3.3 配置Python环境

还得再输入一次密码才能进来

3.4 调试Python代码

选Python debugger

会显示和PyCharm类似的调试配置,前三种最为常用,2对应script,3对应module

我们以2为例,所需要执行的命令如下

python tools/train.py projects/configs/flashocc/flashocc-r50-M0.py

那么对应的调试参数-配置文件内容如下(这部分将运行命令对应到vs code调试参数可以问问GPT,又快又好):

{"version": "0.2.0","configurations": [{"name": "Python 调试程序: tools/train.py","type": "python","request": "launch","program": "${workspaceFolder}/tools/train.py","args": ["${workspaceFolder}/projects/configs/flashocc/flashocc-r50-M0.py"],"env": {"PYTHONUNBUFFERED": "1",},"console": "integratedTerminal","cwd": "${workspaceFolder}"}]
}

保存后点击左侧调试栏里的开始调试,就成功开始调试啦:

别忘了设置断点哦:

还有得创建终端,conda actiavte 进环境,再调试:

补充:使用调试控制台,查看变量tensor的形状

输入xxx.shape,或者:

[tensor.shape for tensor in xxx]

就能查看对应变量内部所有tensor的形状啦,别的调试方法和PyCharm类似,可参考:

[实验日志] 将pycharm(本地项目)连接到远程服务器(Linux)上跑起来

结语

OK啦,到这里我们就成功设置了VS Code进行Python的远程调试,接下来我们就可以愉快地写代码和debug了。

本文参考以下博客,并融入了自己的思考:
https://zhuanlan.zhihu.com/p/93239107
https://blog.csdn.net/Hreticent/article/details/82968466
https://www.oschina.net/question/3637446_2282455
https://zhuanlan.zhihu.com/p/43656542
VS Code进行Python远程调试_vscode 远程 python-CSDN博客(主要参考)

相关文章:

[实验日志] VS Code 连接服务器上的 Python 解释器进行远程调试

目录 0. 前言 1. 环境 2. 准备工作 2.1 安装VS Code 2.2 安装插件 2.3 配置远程服务器 2.4 修改设置 2.5 打开远程调试窗口 3. 调试代码 3.1 输密码 3.2 打开服务器文件夹 3.3 配置Python环境 3.4 调试Python代码 补充:使用调试控制台,查看…...

(14)gdb 笔记(7):以日志记录的方式来调试多进程多线程程序,linux 命令 tail -f 实时跟踪日志

(44)以日志记录的方式来调试多进程多线程程序 : 这是老师的日志文件,可以用来模仿的模板: (45)实时追踪日志的 tail -f 命令: (46) 多种调试方法结合起来用 …...

Sentinel的安装和做限流的使用

一、安装 Release v1.8.3 alibaba/Sentinel GitHubA powerful flow control component enabling reliability, resilience and monitoring for microservices. (面向云原生微服务的高可用流控防护组件) - Release v1.8.3 alibaba/Sentinelhttps://github.com/alibaba/Senti…...

四柱预测学

图表 后天八卦 十二地支不仅代表了时间,还代表了方位。具体来说: ‌子‌:代表正北方‌丑寅‌:合起来代表东北方‌卯‌:代表正东方‌辰巳‌:合起来代表东南方‌午‌:代表正南方‌未申‌:合起来代表西南方‌酉‌:代表正西方‌戌亥‌:合起来代表西北方‌四季-五行-六神…...

【个人开发】macbook m1 Lora微调qwen大模型

本项目参考网上各类教程整理而成,为个人学习记录。 项目github源码地址:Lora微调大模型 项目中微调模型为:qwen/Qwen1.5-4B-Chat。 去年新发布的Qwen/Qwen2.5-3B-Instruct同样也适用。 微调步骤 step0: 环境准备 conda create --name fin…...

sqli-labs靶场实录(二): Advanced Injections

sqli-labs靶场实录: Advanced Injections Less21Less22Less23探测注入点 Less24Less25联合注入使用符号替代 Less25aLess26逻辑符号绕过and/or过滤双写and/or绕过 Less26aLess27Less27aLess28Less28aLess29Less30Less31Less32(宽字节注入)Less33Less34Le…...

Linux系统 环境变量

环境变量 写在前面概念查看环境变量main函数的参数argc & argvenv bash环境变量 写在前面 对于环境变量,本篇主要介绍基本概念及三四个环境变量 —— PATH、HOME、PWD。其中 PATH 作为 “ 敲门砖 ”,我们会更详细讲解;理解环境变量的全局…...

机器学习-线性回归(最大似然估计)

机器学习任务可以分为两类: 一类是样本的特征向量 𝒙 和标签 𝑦 之间存在未知的函数关系𝑦 h(𝒙),另一类是条件概率𝑝(𝑦|𝒙)服从某个未知分布。最小二乘法是属于第一类&#xff0c…...

【信息系统项目管理师-案例真题】2017上半年案例分析答案和详解

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 试题一【问题1】8 分【问题2】4 分【问题3】8 分【问题4】5 分试题二【问题1】10 分【问题2】8 分【问题3】6 分【问题4】5 分试题三【问题1】5 分【问题2】7 分【问题3】6 分【问题4】3 分试题一 阅读下列说明…...

CSP晋级组比赛生成文件夹与文件通用代码Python

快速生成文件夹与文件的脚本 import sys import osmyfiles sys.argv[1::] for f in myfiles:os.mkdir(f)os.system(f"touch {f}/{f}.in")os.system(f"touch {f}/{f}.out")os.system(f"touch {f}/{f}.cpp")with open("template.cpp",…...

正则表达式进阶(二)——零宽断言详解:\b \B \K \z \A

在正则表达式中,零宽断言是一种非常强大的工具,能够在不消费字符的情况下对匹配位置进行约束。除了环视(lookahead 和 lookbehind)以外,还有一些常用的零宽断言,它们用于处理边界、字符串的开头和结尾等特殊…...

Android 中实现 PDF 预览三种方式

目录 1. 使用第三方库 PdfRenderer(适用于 Android 5.0 及以上) 步骤:2. 使用第三方库 MuPDF步骤:3. 使用第三方库 PdfiumAndroid步骤: 1. 使用第三方库 PdfRenderer(适用于 Android 5.0 及以上&#xff09…...

尚硅谷课程【笔记】——大数据之Zookeeper【二】

课程视频:【尚硅谷Zookeeper教程】 四、Zookeeper实战 4.1分布式安装部署 1. 集群规划 在Hadoop102、Hadoop103和Hadoop104三个节点上部署Zookeeper 2. 解压安装 1)解压Zookeeper.tar.gz到指定目录 tar -zxvf zookeeper-3.7.2.tar.gz -C /opt/mod…...

CodeGPT + IDEA + DeepSeek,在IDEA中引入DeepSeek实现AI智能开发

CodeGPT IDEA DeepSeek,在IDEA中引入DeepSeek 版本说明 建议和我使用相同版本,实测2022版IDEA无法获取到CodeGPT最新版插件。(在IDEA自带插件市场中搜不到,可以去官网搜索最新版本) ToolsVersionIntelliJ IDEA202…...

postgresql 游标(cursor)的使用

概述 PostgreSQL游标可以封装查询并对其中每一行记录进行单独处理。当我们想对大量结果集进行分批处理时可以使用游标,因为一次性处理可能造成内存溢出。 另外我们可以定义函数返回游标类型变量,这是函数返回大数据集的有效方式,函数调用者…...

计算机组成原理——指令系统(六)

在时间的长河中,我们都是追梦人,脚下的每一步都在刻画未来的模样。无论世界如何变幻,心中的那团火焰都不应熄灭。它是你突破黑暗、迎接黎明的力量源泉。每一个不曾起舞的日子,都是对生命的辜负;每一次跌倒后的站起&…...

Python设计模式 - 原型模式

定义 原型模式是一种创建型设计模式,它可以通过复制现有对象来创建新对象,而不是直接实例化新的对象。 结构 抽象原型(Prototype):声明 clone() 方法,以便派生类实现克隆自身的能力。具体原型&#xff08…...

金和OA C6 DownLoadBgImage任意文件读取漏洞

金和OA C6 DownLoadBgImage任意文件读取漏洞 漏洞描述 金和C6数据库是一款针对企业信息化管理而设计的高级数据库管理系统,主要应用于企业资源规划(ERP)、客户关系管理(CRM)以及办公自动化(OA&#xff09…...

【stm32学习】STM32F103实操primary(FlyMCU)

github插入图片实在是太难用了,暂时懒得学就先用CSDN吧hh 一、在设备管理器下,找到单片机,并检查与FlyMCU-搜索端口 显示的是否一致 二、在搜索串口右面的栏里选中该Port,波特率选中115200 三、选择文件夹中的.hex文件&#xff0…...

如何将Excel的表格存为图片?

emmm,不知道题主具体的应用场景是什么,就分享几个我一般会用到的场景下奖excel表格保存为图片的技巧吧! 先来个总结: 方法 适用场景 画质 操作难度 截图(WinShiftS) 快速保存表格,方便粘贴…...

Windows系统下Tesseract-OCR最全配置指南:从环境变量设置到多语言识别

Windows系统下Tesseract-OCR深度配置与实战指南 1. 环境准备与核心组件安装 在Windows平台上部署Tesseract-OCR需要特别注意64位系统的兼容性问题。首先需要从官方推荐的镜像站点下载最新稳定版本(目前推荐5.3.0以上版本),安装时务必勾选Addi…...

OpenClaw技能开发入门:为百川2-13B量化模型定制自动化模块

OpenClaw技能开发入门:为百川2-13B量化模型定制自动化模块 1. 为什么选择OpenClaw开发技能? 去年冬天,我为了给团队搭建一个内部天气查询助手,尝试过至少三种不同的自动化方案。要么是API调用太复杂,要么是自然语言处…...

别再手动算内存了!用STM32CubeIDE的Build Analyzer,5分钟摸清你的H743芯片还剩多少FLASH和RAM

深度解析STM32CubeIDE内存分析:从Build Analyzer到高效内存管理实战 在嵌入式开发的世界里,内存就像是一块珍贵的画布——有限且昂贵。想象一下,当你精心设计的STM32H743程序在关键时刻崩溃,而问题可能仅仅是因为某个全局变量悄悄…...

ViGEmBus终极指南:Windows游戏控制器虚拟化完整解决方案

ViGEmBus终极指南:Windows游戏控制器虚拟化完整解决方案 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus Windows游戏控制器虚拟化是许多PC游戏玩…...

OpenClaw备份策略:GLM-4.7-Flash智能管理本地与云端存储

OpenClaw备份策略:GLM-4.7-Flash智能管理本地与云端存储 1. 为什么需要智能备份方案 上周我的移动硬盘突然罢工,导致三个月的项目文档全部丢失。这次惨痛经历让我意识到:传统备份方式已经无法满足现代工作需求。手动备份不仅耗时耗力&#…...

02.Linux常用文件操作命令

1.mkdir 目录名:创建目录 mkdir 目录名 mkdir -p a/b/c 创建多级目录 2.touch 创建空文件 touch 文件名 touch 文件名 文件名 创建多个文件 3.文件写入内容 echo写入 覆盖写入 echo 文件内容 >文件名 追加写入(日志必用) echo 文件内容 >…...

避坑指南:Virtio-PCI设备初始化失败的6个常见原因及解决方案

Virtio-PCI设备初始化故障深度排查手册 虚拟化技术在现代数据中心的应用已无处不在,而Virtio作为半虚拟化的事实标准协议,其PCI设备初始化过程却常常成为运维人员的"暗礁区"。上周处理某金融云平台故障时,我发现一个反复出现的现象…...

Sourcetrail实战:如何利用可视化分析加速大型C++项目代码理解

1. 为什么大型C项目需要可视化分析工具 接手一个百万行级别的C项目是什么体验?我第一次接触MariaDB源码时,面对层层嵌套的类继承、错综复杂的函数调用链,光是理清handler类的派生关系就花了整整两天。这种经历让我深刻意识到:传统…...

如何实现SASM多语言支持:完整国际化配置与翻译指南

如何实现SASM多语言支持:完整国际化配置与翻译指南 【免费下载链接】SASM SASM - simple crossplatform IDE for NASM, MASM, GAS and FASM assembly languages 项目地址: https://gitcode.com/gh_mirrors/sa/SASM SASM(Simple Assembler IDE&…...

5大核心功能重塑Sketch效率:RenameIt批量命名工具的流程优化实践

5大核心功能重塑Sketch效率:RenameIt批量命名工具的流程优化实践 【免费下载链接】RenameIt Keep your Sketch files organized, batch rename layers and artboards. 项目地址: https://gitcode.com/gh_mirrors/re/RenameIt 在现代UI/UX设计工作流中&#x…...