Pycharm Remote Debug

Pycharm Remote Debug

@(Pycharm)[Remote Debug, 帮助]

  • 一般情况,我们开发调试都是在本地PC上完成,但有时项目代码对运行环境有依赖,必须部署了相关依赖组件才可以运行,这就导致了本地可能无法进行调试
  • 解决以上特殊场景:Remote Debug
  • 注意:此方法的使用场景,不要用于生产环境

下载远程解释器

  • 本地需要安装ssh,方法自行百度
  • 远程调试是在远端的服务器上运行的,它除了依赖其他组件之外,还会有一些很多Python依赖包我们本地并没有
1、 File-->Setting-->python interpreter-->show all--> add-->ssh interpreter

2、添加host、username、password

在这里插入图片描述

在这里插入图片描述

3、add python interpreter
4、apply-->ok
5、此时查看python 解释器 就会多一个远程python解释器

在这里插入图片描述
在这里插入图片描述


新建项目

  • pycharm 新建一个空的项目,后面我们拉服务器上的项目代码就会放置在这个项目目录下
  • New Project,过程忽略

配置连接服务器

Tools->Deployment->configuration
Name:服务器ip地址
Type:设置SFTP

在这里插入图片描述

SFTP host:公网ip
Port:服务器开放的ssh端口
Root path:要调试的项目代码目录
Username:登陆服务器所用的用户
Auth type:登陆类型,这里选密码
Password:登陆密码,可以选择保存密码

在这里插入图片描述

填写完成后,切换到Mappings选项卡,在箭头位置,填写\

在这里插入图片描述

将该项目的解释器设置为刚才新建的远程解释器,即可

连接远程服务器,就可以看到服务器代码:
Tools -> Deployment -> Browse Remote Host

下载项目代码

在这里插入图片描述

远程调试

  • 使用postman 协助调试。注意ip并非是0.0.0.0,而是服务器ip地址
### PyCharm 调试配置及其使用 #### 配置远程调试环境 为了实现远程调试功能,可以按照以下方法设置 PyCharm 的调试器。通过 `Run -> Edit Configurations` 来创建一个新的 Python Remote Debug 配置项[^2]。在此过程中,需要指定目标主机地址以及端口号以便于连接到远程服务器。 对于涉及分布式计算框架如 Torch Distributed Launch 的项目,在本地启动之前还需要额外调整解释器选项字段 Interpreter options 中的内容。具体来说就是在该位置加入 `-m torch.distributed.launch --nproc_per_node=<number>` 参数来模拟集群环境下的多进程行为模式[^4]。 #### 解决模块导入失败的问题 当遇到类似于无法找到已安装包的情况时(例如 pandas),通常是因为所使用的虚拟环境中缺少这些依赖库或者当前工作区未正确关联至相应环境所致[^3]。因此建议重新核查项目的 SDK 设置是否指向正确的 python executable 文件路径;另外也可以尝试更新 index 或者手动添加 missing sources roots 来改善这一状况。 以下是针对上述情况的一个简单解决方案脚本: ```python import sys from pathlib import Path def add_to_sys_path(directory): """Add the given directory to system path.""" dir_abs = str(Path(directory).resolve()) if dir_abs not in sys.path: sys.path.append(dir_abs) if __name__ == "__main__": project_root = "/path/to/your/project" libraries_dir = f"{project_root}/lib" add_to_sys_path(libraries_dir) try: import pandas as pd print("Pandas successfully imported.") except ImportError as e: raise Exception(f"Pandas could not be found after adding paths: {e}") ``` 此代码片段展示了如何动态修改系统的搜索路径以包含自定义目录中的第三方软件包,并验证其有效性。 #### 处理 DeepSpeed 导致的分布式问题 如果因为采用了 deepspeed 技术而引发了某些特殊的分布式错误,则可能是由于它内部实现了自己的通信机制从而干扰到了标准流程的结果呈现形式[^5]。此时应该仔细阅读官方文档关于集成其他工具链部分的信息说明,确保两者之间不存在冲突之处后再做进一步操作。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值