[实验日志] 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博客(主要参考)