一、连接远程服务器
首先需要使用SSH先连接远程服务器(这个有空再记录)
二、激活虚拟环境
接着激活一个虚拟环境,可以使用命令来查看当前环境下有什么虚拟环境:conda env list
接着使用命令激活pointcloud环境:conda activate pointcloud
前面的括号显示虚拟环境的名字则代表已经激活了。
这样的意思是,当下运行的所有python文件都是用这个虚拟环境来运行的,而不是使用服务器中的全局环境base来运行的,这样有利于用户创建几个不同需求的虚拟环境来运行程序,并且避免一些工具库之间的冲突。
三、 安装debugpy(初次使用时需要安装)
在当前环境pointcloud中安装debugpy(主要是考虑到,基本上运行python文件都是用这个虚拟环境),使用命令:pip install debugpy
可以使用命令来检查当前虚拟环境是否真的安装了该工具库:pip show debugpy
正常安装的了会显示工具库的版本等等信息
四、创建launch.json文件
方法1
直接在.vscode目录下创建一个launch.json文件(对,就是自己命名一个这样的文件)
方法2
点击左侧活动栏的Run and Debug,接着create a lauch.json file
然后上面的会提示要创建什么文件(node.js/python debugger/…),我是随便选了第一个node.js,紧接着就会创建一个launch.json文件,但是后面会替换掉文件中的内容!!!
五、编辑launch.json文件内容
把前面创建的launch.json文件里面的内容替换成在gpt中搜的教程里面的内容:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Remote Attach",
"type": "debugpy",
"request": "attach",
"connect": {
"host": "localhost",
"port": 5678
},
"pathMappings": [
{
"localRoot": "${workspaceFolder}",
"remoteRoot": "/root/code/3D_Registration_with_Maximal_Cliques"
}
]
}
]
}
其中我感觉比较重要的就是locaRroot和remoteRoot,在终端输入命令获得远程服务器中当前文件夹的根目录:pwd
将得到的路径替换到launch.json文件中的remoteRoot,意思就是这个配置文件就管理这个根目录下所有文件的debug了。
至于这个localRoot我还不知道作用体现在哪,后面有问题再补充吧~
那个"port"是指调试服务器监听的端口,需要和在服务器上启动debugpy时指定的端口一致。我的理解是,我指定这个根目录下的文件的debug调试工作,是通过远程的调试服务器debugpy进行的,并且这两方之间统一用这个端口进行传输。(可能吧,大概的)
六、进行调试
在终端输入命令启动debugpy调试服务器:python -m debugpy --listen 0.0.0.0:5678 --wait-for-client aaa.py
其中,aaa.py的位置是写你需要调试的文件名字。
输入命令按enter键,服务器就会等待,等待你选择文件来进行调试。
前面创建并修改好launch.json文件后,再次点击左边工具栏的Run and Debug就会显示
这样就是可调试的状态啦
点击绿色按钮Start Debugging,进行调试,就能看到跟在本地进行调试一样的界面啦
总结
所以每次调试一定要有的东西和操作就是:
1、(基本)激活虚拟环境+安装debugpy;
2、launch.json文件,并且里面的内容要指定当前文件的根目录;
3、启动debugpy调试服务器,命令python -m debugpy --listen 0.0.0.0:5678 --wait-for-client aaa.py;
4、选择相应文件进行debug。