如何利用VScode连接AutoDL进行代码调试/Debug?(自用存档)

       在由于算力不足租用AutoDL时我发现,基础功能只满足我对代码运行的需求,无法满足调试代码的需求。

       我日常编写代码的工具是PyCharm,但我发现,当数据集和代码存放在云服务器时,本地电脑的PyCharm即使链接上云服务器,也无法添加断点调试(似乎只是一个用来运行代码的可视化工具),这是我想使用PyCharm连接云服务器时遇到的主要问题。

       但我的同学在只使用云端算力,数据和代码均在本地的情况下时,似乎是可以用PyCharm添加断点调试的?我没有对此进行验证,因为我的数据迁移和代码迁移较为麻烦,所以我索性更换为使用VScode远程连接AutoDL。顺利使用pycharm调试的朋友也可以在评论交流。

具体实现过程参考:利用VScode连接远程服务器进行代码调试及可视化界面_vscode连接服务器运行代码-CSDN博客

目录

一、获取SSH指令及密码

二、使用VScode进行连接

1、安装套件

2、添加服务器

3、配置config

4、更改设置

三、连接服务器


一、获取SSH指令及密码

二、使用VScode进行连接

1、安装套件

我安装了以下套件:

2、添加服务器

在弹出的输入框中输入SSH指令:ssh -p .....

3、配置config

(1)选中左侧最下方图标,上方下拉列表里选Remotes(Tunnels/SSH)

(2)然后点击设置,上方弹出config文件,打开进行配置。SSH指令中包含服务器ip地址、端口号、用户名(详细请参考引用文章)

4、更改设置

File->Preferences->Settings->Extension->Remote-SSH

勾选Show Login Terminal

三、连接服务器

(1)Linux->SSH host->密码->Extension->Remote-SSH

(2)打开代码文件......

四、debug调试代码

(1)安装python扩展

(2)如果是通过bash xxx.sh来运行xxx.py文件:

修改launch.json内容,这个教程有很多,可以自行检索(.sh需要传参的话也要添加进json中)

遇到的问题基本就是这样.....祝大家科研顺利....

Ps:显示tensor维度,加到需要调试文件的开头

import torch
def custom_repr(self):
    return f'{{Tensor:{tuple(self.shape)}}} {original_repr(self)}'
 
original_repr = torch.Tensor.__repr__
torch.Tensor.__repr__ = custom_repr
### VSCode 连接 AutoDL 时本地包标红的解决方案 在使用 VSCode 远程连接AutoDL 并运行深度学习代码的过程中,可能会遇到本地导入的 Python 包被标记为红色警告的情况。这通常是由于 IntelliSense 或 Linter 工具无法识别远程环境中的依赖项所致[^1]。 #### 原因分析 这种现象的主要原因可以归纳为以下几点: 1. **Python解释器配置错误**:VSCode 中未正确设置与远程服务器匹配的 Python 解释器版本。 2. **依赖库缺失或不一致**:虽然远程环境中已安装所需的依赖库,但本地开发环境可能缺少这些库,或者两者之间的依赖版本存在差异。 3. **工作区路径问题**:如果项目的根目录未正确映射至远程主机上的实际路径,则可能导致模块解析失败[^2]。 #### 解决方法 以下是几种常见的解决策略: ##### 方法一:切换正确的 Python 解释器 确保选择了对应于远程机器上正在使用的 Python 版本作为当前的工作空间解释器。可以通过命令面板 (`Ctrl+Shift+P`) 输入 `Python: Select Interpreter` 来更改此项设置。对于基于 SSH 的远程调试场景,默认情况下应该自动检测并应用目标系统的解释器;但如果未能成功完成此操作,则需手动指定其位置,通常类似于 `/usr/bin/python3` 或其他由 Anaconda 提供的具体路径[^3]。 ```python import sys print(sys.executable) ``` 上述脚本可以帮助确认所选解释器的实际可执行文件地址是否符合预期。 ##### 方法二:同步依赖关系 利用 pip freeze 导出一份完整的依赖清单,并将其应用于本地副本以及云端实例之间保持一致性非常重要。这样做的好处在于能够减少因为不同平台间细微差别而引发的各种兼容性难题。 ```bash pip freeze > requirements.txt ssh user@remote-server 'cd /path/to/project && pip install -r requirements.txt' ``` 另外,在 `.devcontainer.json` 文件里定义好基础镜像及其扩展插件列表也是不错的实践方式之一,它允许开发者快速搭建起统一标准化的开发框架结构。 ##### 方法三:调整 Pylance/Linting 设置 有时即使完成了前面提到的各项准备工作之后仍然会出现类似的提示信息,这时就需要考虑适当放松某些静态检查规则的要求程度了。比如编辑用户偏好设定 JSON 添加如下字段即可关闭不必要的报错提醒功能: ```json { "python.analysis.diagnosticSeverityOverrides": { "reportMissingImports": "none" } } ``` 通过这样的手段可以让 IDE 更加专注于真正重要的逻辑层面而非单纯语法形式方面的瑕疵之处。 --- ### 注意事项 尽管解决了标红显示的问题,但在实际编码过程中仍需要注意遵循良好的编程习惯,例如合理规划数据存储路径等细节方面的内容。正如先前提及过的那样,“代码中的文件路径应当特别留意”,推荐采用绝对定位法来规避潜在风险因素的影响。 ```python image_path = "/root/autodl-tmp/DeepLearn/Dataset1" with open(image_path, 'rb') as f: data = f.read() ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值